diff --git a/source/ProtocolGenerator/Command.cs b/source/ProtocolGenerator/Command.cs
index 1bc90d0866630fb1d6b44d2f66d6c5f92ee2d932..59199f9d2b014ea7f55530dc1133e9cd2053b364 100644
--- a/source/ProtocolGenerator/Command.cs
+++ b/source/ProtocolGenerator/Command.cs
@@ -3,6 +3,7 @@ using System.Collections.ObjectModel;
 using System.Text;
 using System.Linq;
 using System;
+using Newtonsoft.Json;
 
 namespace MasterDevs.ChromeDevTools.ProtocolGenerator
 {
@@ -54,6 +55,9 @@ namespace MasterDevs.ChromeDevTools.ProtocolGenerator
             set;
         }
 
+        [JsonProperty("experimental")]
+        public bool IsExperimental { get; set; }
+
         public override bool Equals(object obj)
         {
             var other = obj as Command;
@@ -81,7 +85,7 @@ namespace MasterDevs.ChromeDevTools.ProtocolGenerator
                 {
                     hash = hash * 23 + this.Error.GetHashCode();
                 }
-                
+
                 hash = hash * 23 + this.Parameters.GetCollectionHashCode();
                 return hash;
             }
diff --git a/source/ProtocolGenerator/Domain.cs b/source/ProtocolGenerator/Domain.cs
index a707947291ead3d5f658dbf253806220c0e99ab8..9bce5337cfee664063d5aa7edd88e192d5d6730b 100644
--- a/source/ProtocolGenerator/Domain.cs
+++ b/source/ProtocolGenerator/Domain.cs
@@ -2,6 +2,7 @@
 using System;
 using System.Collections.ObjectModel;
 using System.Linq;
+using Newtonsoft.Json.Linq;
 
 namespace MasterDevs.ChromeDevTools.ProtocolGenerator
 {
@@ -51,6 +52,11 @@ namespace MasterDevs.ChromeDevTools.ProtocolGenerator
             set;
         }
 
+        [JsonProperty("experimental")]
+        public bool IsExperimental { get; set; }
+
+        public string[] Dependencies { get; set; }
+
         public Command GetCommand(string name)
         {
             return this.Commands.SingleOrDefault(c => string.Equals(c.Name, name, StringComparison.OrdinalIgnoreCase));
diff --git a/source/ProtocolGenerator/Event.cs b/source/ProtocolGenerator/Event.cs
index 2456dc94e67fcaace2dd87c8fabf9cedf7230380..fe6e146a4cccdf25b72b22356b6ad7f869ff1bd5 100644
--- a/source/ProtocolGenerator/Event.cs
+++ b/source/ProtocolGenerator/Event.cs
@@ -1,4 +1,5 @@
 using System.Collections.ObjectModel;
+using Newtonsoft.Json;
 
 namespace MasterDevs.ChromeDevTools.ProtocolGenerator
 {
@@ -27,5 +28,8 @@ namespace MasterDevs.ChromeDevTools.ProtocolGenerator
             get;
             set;
         }
+
+        [JsonProperty("experimental")]
+        public bool IsExperimental { get; set; }
     }
 }
diff --git a/source/ProtocolGenerator/Property.cs b/source/ProtocolGenerator/Property.cs
index 9002cadf8e2aca6267369b3cb830540bab33b4df..2e461dbc70b0521a7f64bf39c91fa939bdf2339d 100644
--- a/source/ProtocolGenerator/Property.cs
+++ b/source/ProtocolGenerator/Property.cs
@@ -16,5 +16,8 @@ namespace MasterDevs.ChromeDevTools.ProtocolGenerator
             get;
             set;
         }
+
+        [JsonProperty("deprecated")]
+        public bool IsDeprecated { get; set; }
     }
 }
diff --git a/source/ProtocolGenerator/Type.cs b/source/ProtocolGenerator/Type.cs
index 7d8f8cfc9850d3fb9b9691e0d5a92b3a14e67bee..1fbeff975ea37fad1663ebd0e667a9be6896d71b 100644
--- a/source/ProtocolGenerator/Type.cs
+++ b/source/ProtocolGenerator/Type.cs
@@ -87,6 +87,10 @@ namespace MasterDevs.ChromeDevTools.ProtocolGenerator
                 }
             }
         }
+
+        [JsonProperty("experimental")]
+        public bool IsExperimental { get; set; }
+
         public override bool Equals(object obj)
         {
             var other = obj as Type;