Repository: compose-spec/compose-go

Issue:
Provider services should make type a required attribute
https://github.com/compose-spec/compose-go/blob/e07723c227fee4a7063a55a0d072167679250116/schema/compose-spec.json#L392-L399

`type` should be a required attribute. Without it there is no way of knowing how to run the third-party component.

Discussion:

Solution patch:
diff --git a/schema/compose-spec.json b/schema/compose-spec.json
index 7160af9..f665cb5 100644
--- a/schema/compose-spec.json
+++ b/schema/compose-spec.json
@@ -392,6 +392,7 @@
         "provider": {
           "type": "object",
           "description": "Specify a service which will not be manage by Compose directly, and delegate its management to an external provider.",
+          "required": ["type"],
           "properties": {
             "type": {
               "type": "string",



Test patch:
diff --git a/loader/loader_test.go b/loader/loader_test.go
index bd9766c..42819c6 100644
--- a/loader/loader_test.go
+++ b/loader/loader_test.go
@@ -3791,6 +3791,19 @@ services:
 			"booleans": []string{"true", "false"},
 		},
 	})
+
+	_, err = loadYAML(`
+name: service-provider
+services:
+  test:
+    provider:
+      options:
+        bar: zot
+        strings: foo
+        numbers: 12
+        booleans: true
+`)
+	assert.Check(t, strings.Contains(err.Error(), "services.test.provider type is required"))
 }
 
 func TestImageVolume(t *testing.T) {