diff --git a/middleware/log.go b/middleware/log.go
index eb564bd63e7bca1e564e89c2a84b90e23b9c3a52..48f443a95985dcd1d96127751b090042b55d30f5 100644
--- a/middleware/log.go
+++ b/middleware/log.go
@@ -17,7 +17,7 @@ func Logger(next jrpc.Handler) jrpc.Handler {
 		log.Trace().
 			Stringer("time", time.Since(start)).
 			Str("remote", r.Remote()).
-			Str("method", r.Method()).
+			Str("method", r.Method).
 			Str("params", string(r.Msg().Params)).Msg("RPC Request")
 	}
 	return jrpc.HandlerFunc(fn)
diff --git a/openrpc/types/types.go b/openrpc/types/types.go
index df2b5cbf925a99e81a65c35e1ec3ac2d21414a6b..dff54d89e12aab10a50ea9777ac2187826cc0472 100644
--- a/openrpc/types/types.go
+++ b/openrpc/types/types.go
@@ -63,9 +63,10 @@ type Schema struct {
 }
 
 type Param struct {
-	Name     string `json:"name"`
-	Required bool   `json:"required"`
-	Schema   Schema `json:"schema"`
+	Name        string `json:"name"`
+	Description string `json:"description,omitempty"`
+	Required    bool   `json:"required"`
+	Schema      Schema `json:"schema"`
 }
 
 type Result struct {
@@ -74,10 +75,41 @@ type Result struct {
 }
 
 type Method struct {
-	Name    string  `json:"name"`
-	Summary string  `json:"summary"`
-	Params  []Param `json:"params"`
-	Result  Result  `json:"result"`
+	Name     string           `json:"name"`
+	Tags     []Tag            `json:"tags,omitempty"`
+	Summary  string           `json:"summary"`
+	Params   []Param          `json:"params"`
+	Result   Result           `json:"result"`
+	Examples []ExamplePairing `json:"examples,omitempty"`
+}
+
+type Tag struct {
+	Ref          string                 `json:"$ref,omitempty"`
+	Name         string                 `json:"name"`
+	Summary      string                 `json:"summary,omitempty"`
+	Description  string                 `json:"description,omitempty"`
+	ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"`
+}
+
+type ExternalDocumentation struct {
+	Description string `json:"description,omitempty"`
+	URL         string `json:"url,omitempty"`
+}
+
+type ExamplePairing struct {
+	Name        string    `json:"name"`
+	Description string    `json:"description,omitempty"`
+	Summary     string    `json:"summary,omitempty"`
+	Params      []Example `json:"params"`
+	Result      Example   `json:"result"`
+}
+
+type Example struct {
+	Ref         string `json:"$ref,omitempty"`
+	Name        string `json:"name"`
+	Summary     string `json:"summary,omitempty"`
+	Description string `json:"description,omitempty"`
+	Value       any    `json:"value"`
 }
 
 func (m *Method) Namespace() string {