diff --git a/buffet/commands/command_dictionary.cc b/buffet/commands/command_dictionary.cc
index a73d73f..0fdae65 100644
--- a/buffet/commands/command_dictionary.cc
+++ b/buffet/commands/command_dictionary.cc
@@ -208,12 +208,12 @@
     if (!filter(pair.second.get()))
       continue;
 
-    std::unique_ptr<base::DictionaryValue> definition =
+    std::unique_ptr<base::DictionaryValue> parameters =
         pair.second->GetParameters()->ToJson(full_schema, error);
-    if (!definition) {
-      dict.reset();
-      return dict;
-    }
+    if (!parameters)
+      return {};
+    // Progress and results are not part of public commandDefs.
+
     auto cmd_name_parts = chromeos::string_utils::SplitAtFirst(pair.first, ".");
     std::string package_name = cmd_name_parts.first;
     std::string command_name = cmd_name_parts.second;
@@ -226,7 +226,7 @@
     }
     base::DictionaryValue* command_def = new base::DictionaryValue;
     command_def->Set(commands::attributes::kCommand_Parameters,
-                     definition.release());
+                     parameters.release());
     package->SetWithoutPathExpansion(command_name, command_def);
   }
   return dict;
diff --git a/buffet/commands/object_schema.cc b/buffet/commands/object_schema.cc
index 96fe952..6838794 100644
--- a/buffet/commands/object_schema.cc
+++ b/buffet/commands/object_schema.cc
@@ -294,7 +294,7 @@
   for (const auto& pair : properties_) {
     auto PropDef = pair.second->ToJson(full_schema, error);
     if (!PropDef)
-      return std::unique_ptr<base::DictionaryValue>();
+      return {};
     value->SetWithoutPathExpansion(pair.first, PropDef.release());
   }
   return value;
diff --git a/buffet/commands/schema_constants.cc b/buffet/commands/schema_constants.cc
index 6aaf780..eec6177 100644
--- a/buffet/commands/schema_constants.cc
+++ b/buffet/commands/schema_constants.cc
@@ -49,9 +49,9 @@
 const char kCommand_Id[] = "id";
 const char kCommand_Name[] = "name";
 const char kCommand_Parameters[] = "parameters";
+const char kCommand_Progress[] = "progress";
 const char kCommand_Results[] = "results";
 const char kCommand_State[] = "state";
-const char kCommand_Progress[] = "progress";
 const char kCommand_ErrorCode[] = "error.code";
 const char kCommand_ErrorMessage[] = "error.message";
 
diff --git a/buffet/commands/schema_constants.h b/buffet/commands/schema_constants.h
index fbbb3e3..2bc371d 100644
--- a/buffet/commands/schema_constants.h
+++ b/buffet/commands/schema_constants.h
@@ -53,9 +53,9 @@
 extern const char kCommand_Id[];
 extern const char kCommand_Name[];
 extern const char kCommand_Parameters[];
+extern const char kCommand_Progress[];
 extern const char kCommand_Results[];
 extern const char kCommand_State[];
-extern const char kCommand_Progress[];
 extern const char kCommand_ErrorCode[];
 extern const char kCommand_ErrorMessage[];
 
