diff --git a/.idea/.idea.WinAppCommunity.Sdk/.idea/.gitignore b/.idea/.idea.WinAppCommunity.Sdk/.idea/.gitignore
new file mode 100644
index 0000000..f1cd8f1
--- /dev/null
+++ b/.idea/.idea.WinAppCommunity.Sdk/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/.idea.WinAppCommunity.Sdk.iml
+/contentModel.xml
+/projectSettingsUpdater.xml
+/modules.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.WinAppCommunity.Sdk/.idea/encodings.xml b/.idea/.idea.WinAppCommunity.Sdk/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.WinAppCommunity.Sdk/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.WinAppCommunity.Sdk/.idea/indexLayout.xml b/.idea/.idea.WinAppCommunity.Sdk/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.WinAppCommunity.Sdk/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.WinAppCommunity.Sdk/.idea/vcs.xml b/.idea/.idea.WinAppCommunity.Sdk/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.WinAppCommunity.Sdk/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/IModifiableProject.cs b/src/IModifiableProject.cs
index 4dd19b7..abc00e4 100644
--- a/src/IModifiableProject.cs
+++ b/src/IModifiableProject.cs
@@ -3,7 +3,7 @@
///
/// Represents a project that can be modified.
///
-public interface IModifiableProject : IReadOnlyProject, IModifiableEntity, IModifiableImagesCollection, IModifiableUserRoleCollection, IModifiableAccentColor
+public interface IModifiableProject : IReadOnlyProject, IModifiableEntity, IModifiableImagesCollection, IModifiableUserRoleCollection, IModifiableAccentColor, IModifiableFeaturesCollection
{
///
/// Updates the publisher for this project.
diff --git a/src/IModifiableProjectRole.cs b/src/IModifiableProjectRole.cs
new file mode 100644
index 0000000..a354896
--- /dev/null
+++ b/src/IModifiableProjectRole.cs
@@ -0,0 +1,8 @@
+namespace WinAppCommunity.Sdk;
+
+///
+/// Represents a project with a corresponding role that can be modified.
+///
+public interface IModifiableProjectRole : IReadOnlyProjectRole, IModifiableProject
+{
+}
\ No newline at end of file
diff --git a/src/IReadOnlyProject.cs b/src/IReadOnlyProject.cs
index d3c4d85..a653f99 100644
--- a/src/IReadOnlyProject.cs
+++ b/src/IReadOnlyProject.cs
@@ -10,7 +10,7 @@ public interface IReadOnlyProject : IReadOnlyProject
///
/// Represents a project.
///
-public interface IReadOnlyProject : IReadOnlyEntity, IReadOnlyImagesCollection, IReadOnlyUserRoleCollection, IReadOnlyAccentColor
+public interface IReadOnlyProject : IReadOnlyEntity, IReadOnlyImagesCollection, IReadOnlyUserRoleCollection, IReadOnlyAccentColor, IReadOnlyFeaturesCollection
where TDependencyCollection : IReadOnlyProjectCollection
{
///
diff --git a/src/IReadOnlyUserCollection.cs b/src/IReadOnlyUserCollection.cs
index e49e0d0..dc10f3d 100644
--- a/src/IReadOnlyUserCollection.cs
+++ b/src/IReadOnlyUserCollection.cs
@@ -13,7 +13,7 @@ public interface IReadOnlyUserCollection : IReadOnlyUserCollection
/// The type of user in this collection.
-public interface IReadOnlyUserCollection
+public interface IReadOnlyUserCollection
where TUser : IReadOnlyUser
{
///