diff --git a/config/install/features.bundle.default.yml b/config/install/features.bundle.default.yml
index 7bdadf6..5620809 100644
--- a/config/install/features.bundle.default.yml
+++ b/config/install/features.bundle.default.yml
@@ -34,12 +34,12 @@ assignments:
     types:
       config:
         features_bundle: features_bundle
-    curated: 1
+    curated: true
     module:
-      installed: 1
-      profile: 1
-      namespace: 1
-      namespace_any: 0
+      installed: true
+      profile: true
+      namespace: true
+      namespace_any: false
     enabled: true
     weight: -5
   existing:
@@ -60,10 +60,10 @@ assignments:
     enabled: true
     weight: -20
   profile:
-    curated: 1
+    curated: true
     standard:
-      files: 1
-      dependencies: 1
+      files: true
+      dependencies: true
     types:
       config:
         block: block
diff --git a/config/schema/features.schema.yml b/config/schema/features.schema.yml
index 4a0d42a..7d515d1 100644
--- a/config/schema/features.schema.yml
+++ b/config/schema/features.schema.yml
@@ -1,3 +1,18 @@
+features.settings:
+  type: config_entity
+  label: 'Features settings'
+  mapping:
+    export:
+      type: mapping
+      label: "Export settings"
+      mapping:
+        folder:
+          type: string
+          label: "Folder"
+    langcode:
+      type: string
+      label: "Language Code"
+
 features.bundle.*:
   type: config_entity
   label: 'Features bundle'
@@ -12,9 +27,10 @@ features.bundle.*:
       type: string
       label: "Description"
     assignments:
-      type: ignore
+      type: sequence
       label: "Assignment"
-      # @todo Profile a proper config schema.
+      sequence:
+        type: features.assignment.[%key]
     profile_name:
       type: string
       label: "Profile name"
@@ -22,3 +38,170 @@ features.bundle.*:
       type: boolean
       label: "Is install profile"
 
+features.assignment.*:
+  type: mapping
+  label: "Assignment settings"
+  mapping:
+    enabled:
+      type: boolean
+      label: "Enabled"
+    weight:
+      type: integer
+      label: "Weight"
+
+features.assignment.base:
+  type: mapping
+  label: "Base type"
+  mapping:
+    enabled:
+      type: boolean
+      label: "Enabled"
+    weight:
+      type: integer
+      label: "Weight"
+    types:
+      type: mapping
+      label: "Types"
+      mapping:
+        config:
+          type: sequence
+          label: "Configuration Types"
+          sequence:
+            type: string
+        content:
+          type: sequence
+          label: "Content entity types"
+          sequence:
+            type: string
+
+features.assignment.core:
+  type: mapping
+  label: "Core type"
+  mapping:
+    enabled:
+      type: boolean
+      label: "Enabled"
+    weight:
+      type: integer
+      label: "Weight"
+    types:
+      type: mapping
+      label: "Types"
+      mapping:
+        config:
+          type: sequence
+          label: "Configuration Types"
+          sequence:
+            type: string
+
+features.assignment.exclude:
+  type: mapping
+  label: "Exclude"
+  mapping:
+    enabled:
+      type: boolean
+      label: "Enabled"
+    weight:
+      type: integer
+      label: "Weight"
+    types:
+      type: mapping
+      label: "Types"
+      mapping:
+        config:
+          type: sequence
+          label: "Configuration Types"
+          sequence:
+            type: string
+    curated:
+      type: boolean
+      label: "Exclude designated site-specific configuration"
+    module:
+      type: mapping
+      label: "Module"
+      mapping:
+        installed:
+          type: boolean
+          label: "Exclude installed module-provided entity configuration"
+        profile:
+          type: boolean
+          label: "Don't exclude install profile's configuration"
+        namespace:
+          type: boolean
+          label: "Don't exclude non-installed configuration by namespace"
+        namespace_any:
+          type: boolean
+          label: "Don't exclude ANY configuration by namespace"
+
+features.assignment.optional:
+  type: mapping
+  label: "Optional"
+  mapping:
+    enabled:
+      type: boolean
+      label: "Enabled"
+    weight:
+      type: integer
+      label: "Weight"
+    types:
+      type: mapping
+      label: "Types"
+      mapping:
+        config:
+          type: sequence
+          label: "Configuration Types"
+          sequence:
+            type: string
+
+features.assignment.profile:
+  type: mapping
+  label: "Profile"
+  mapping:
+    enabled:
+      type: boolean
+      label: "Enabled"
+    weight:
+      type: integer
+      label: "Weight"
+    curated:
+      type: boolean
+      label: "Add commonly-needed configuration"
+    standard:
+      type: mapping
+      label: "Standard"
+      mapping:
+        files:
+          type: boolean
+          label: "Add configuration and files from Standard profile"
+        dependencies:
+          type: boolean
+          label: "Add module and theme dependencies from Standard profile"
+    types:
+      type: mapping
+      label: "Types"
+      mapping:
+        config:
+          type: sequence
+          label: "Configuration Types"
+          sequence:
+            type: string
+
+features.assignment.site:
+  type: mapping
+  label: "Site"
+  mapping:
+    enabled:
+      type: boolean
+      label: "Enabled"
+    weight:
+      type: integer
+      label: "Weight"
+    types:
+      type: mapping
+      label: "Types"
+      mapping:
+        config:
+          type: sequence
+          label: "Configuration Types"
+          sequence:
+            type: string
