encoding/openapi: add support for deprecated field from protobuf

protos may be marked as `deprecated=true` in their definitions,
these fields can be mapped to openapi field `deprecated`.

Change-Id: I41204b1cd7e32e2822145622c6dfeab5d8184d65
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/2900
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/encoding/openapi/build.go b/encoding/openapi/build.go
index 6a32f5d..8d690d1 100644
--- a/encoding/openapi/build.go
+++ b/encoding/openapi/build.go
@@ -212,6 +212,7 @@
 
 	b.setValueType(v)
 	b.format = extractFormat(v)
+	b.deprecated = getDeprecated(v)
 
 	if b.core == nil || len(b.core.values) > 1 {
 		isRef := b.value(v, nil)
@@ -952,6 +953,7 @@
 	singleFields *oaSchema
 	current      *oaSchema
 	allOf        []*oaSchema
+	deprecated   bool
 
 	// Building structural schema
 	core       *builder
@@ -1072,6 +1074,9 @@
 		b.singleFields.kvs = append(b.singleFields.kvs, t.kvs...)
 		t = b.singleFields
 	}
+	if b.deprecated {
+		t.Set("deprecated", true)
+	}
 	setType(t, b)
 	sortSchema(t)
 	return t