Skip to content

feat: add oq pipeline query language for OpenAPI schema graphs#177

Open
vishalg0wda wants to merge 17 commits intomainfrom
feat/oq-query-language
Open

feat: add oq pipeline query language for OpenAPI schema graphs#177
vishalg0wda wants to merge 17 commits intomainfrom
feat/oq-query-language

Conversation

@vishalg0wda
Copy link

@vishalg0wda vishalg0wda commented Mar 12, 2026

Summary

Implements oq — a pipeline query language for semantic traversal and analysis of OpenAPI documents. Agents and humans can construct ad-hoc structural queries over the schema reference graph at runtime.

Docs: oq README · Full reference via openapi spec query-reference

Architecture

CLI string ──parse──> Pipeline AST ──plan──> Execution stages ──eval──> Result set ──format──> JSON/table/markdown/toon
                                                    │
                                                    ▼
                                              SchemaGraph
                                          (materialized from Index)

New packages

  • graph/SchemaGraph type with Build() constructor, node/edge types, BFS traversal, shortest path, SCC (Tarjan's), connected components
  • oq/ — Pipeline query language: parser, AST, executor, formatters (table, JSON, markdown, TOON)
  • oq/expr/ — Predicate expression parser and evaluator for where clauses

Pipeline stages

Category Stages
Source schemas, schemas.components, schemas.inline, operations
Traversal refs-out, refs-in, reachable, ancestors, properties, union-members, items, ops, schemas, path <from> <to>, connected, blast-radius, neighbors <n>
Analysis orphans, leaves, cycles, clusters, tag-boundary, shared-refs
Filter where <expr>, select <fields>, sort <field> [asc|desc], take/head <n>, sample <n>, top <n> <field>, bottom <n> <field>, unique, group-by <field>, count
Meta explain, fields, format <table|json|markdown|toon>

Edge annotations

1-hop traversals (refs-out, refs-in, properties, union-members, items) populate edge_kind, edge_label, and edge_from fields on result rows, making relationship types visible:

openapi spec query 'schemas.components | where name == "Pet" | refs-out | select name, edge_kind, edge_label, edge_from' petstore.yaml

Schema fields

name, type, depth, in_degree, out_degree, union_width, property_count, is_component, is_inline, is_circular, has_ref, hash, path, op_count, tag_count

Operation fields

name, method, path, operation_id, schema_count, component_count, tag, parameter_count, deprecated, description, summary

Example queries

# Top 10 most deeply nested components
openapi spec query 'schemas.components | sort depth desc | take 10 | select name, depth' petstore.yaml

# Dead components (unreferenced by anything)
openapi spec query 'schemas.components | orphans | select name' petstore.yaml

# Blast radius — what breaks if I change Error?
openapi spec query 'schemas.components | where name == "Error" | blast-radius | count' petstore.yaml

# Discover natural schema clusters
openapi spec query 'schemas.components | clusters' petstore.yaml

# Edge annotations — how does Pet reference other schemas?
openapi spec query 'schemas.components | where name == "Pet" | refs-out | select name, edge_kind, edge_label' petstore.yaml

# Detect actual reference cycles (Tarjan's SCC)
openapi spec query 'schemas | cycles' petstore.yaml

# Cross-tag schemas (shared across team boundaries)
openapi spec query 'schemas | tag-boundary | select name, tag_count' petstore.yaml

# Schemas shared by ALL operations
openapi spec query 'operations | shared-refs | select name, op_count' petstore.yaml

# Shortest path between two schemas
openapi spec query 'schemas | path "Pet" "Address" | select name' petstore.yaml

# Pipe from stdin
cat spec.yaml | openapi spec query 'schemas | count'

# Explain a query plan
openapi spec query 'schemas.components | where depth > 5 | sort depth desc | explain' petstore.yaml

Scaling verification

Tested against real specs from the Speakeasy specs corpus:

Spec Size Schemas Graph Build Worst Query
5 KB 11 4ms 7µs
37 KB 219 20ms 124µs
877 KB 2,896 236ms 2.1ms
1.7 MB 6,983 584ms 4.8ms
7.4 MB (CrowdStrike, 50K schemas) 49,900 2.8s 17ms

Test plan

  • Graph build, node registration, edge construction, shortest path, SCC, connected components
  • Expression parser: comparisons, booleans, matches, complex expressions, panic edge cases
  • Pipeline parser: all stage types
  • Pipeline executor: where, sort, take, unique, group-by, count, sample, top, bottom, format
  • Traversals: refs-out, refs-in, reachable, ancestors, properties, union-members, items
  • Edge annotations on 1-hop traversals
  • Schema↔operation navigation, connected components
  • Analysis stages: blast-radius, neighbors, orphans, leaves, cycles, clusters, tag-boundary, shared-refs
  • New fields: op_count, tag_count, edge_kind, edge_label, edge_from
  • Formatters: table, JSON, markdown, TOON
  • Scaling against real specs (5KB to 7.4MB)

🤖 Generated with Claude Code

Implement a domain-specific pipeline query language (oq) that enables
agents and humans to construct ad-hoc structural queries over OpenAPI
documents. The query engine operates over a pre-computed directed graph
materialized from openapi.Index.

New packages:
- graph/: SchemaGraph type with node/edge types, Build() constructor,
  reachability/ancestor traversal, and pre-computed metrics
- oq/expr/: Predicate expression parser and evaluator supporting
  ==, !=, >, <, >=, <=, and, or, not, has(), matches()
- oq/: Pipeline parser, AST, executor with source/traversal/filter
  stages, and table/JSON formatters

New CLI command: openapi spec query <file> '<pipeline>'

Example queries:
  schemas.components | sort depth desc | take 10 | select name, depth
  schemas | where union_width > 0 | sort union_width desc | take 10
  schemas.components | where in_degree == 0 | select name
  operations | sort schema_count desc | take 10

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vishalg0wda vishalg0wda requested a review from a team as a code owner March 12, 2026 00:14
vishalg0wda and others added 4 commits March 12, 2026 00:16
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The cmd/openapi module needs a replace directive pointing to the root
module so that go mod tidy can resolve the new graph/ and oq/ packages
that aren't yet published.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use require.Error for error assertions and assert.Positive for count checks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace fmt.Errorf with errors.New where no format args (perfsprint)
- Convert if-else chain to switch statement (gocritic)
- Use assert.Len and assert.Positive in tests (testifylint)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

vishalg0wda and others added 2 commits March 12, 2026 07:53
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use t.Context() instead of context.Background() in tests
- Replace WriteString(fmt.Sprintf(...)) with fmt.Fprintf
- Remove development replace directive from cmd/openapi/go.mod
- Fix trailing newline for count results in table format

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 4 new potential issues.

View 9 additional findings in Devin Review.

Open in Devin Review

oq/oq.go Outdated
func formatGroups(result *Result) string {
var sb strings.Builder
for _, g := range result.Groups {
fmt.Fprintf(&sb, "%s: count=%d", g.Key, g.Count)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 AGENTS.md violation: sb.WriteString(fmt.Sprintf(...)) instead of fmt.Fprintf in formatGroups

AGENTS.md's staticcheck QF1012 rule states: "Use fmt.Fprintf(w, ...) instead of w.WriteString(fmt.Sprintf(...))." Line 812 uses sb.WriteString(fmt.Sprintf("%s: count=%d", g.Key, g.Count)) which should use fmt.Fprintf.

Suggested change
fmt.Fprintf(&sb, "%s: count=%d", g.Key, g.Count)
fmt.Fprintf(&sb, "%s: count=%d", g.Key, g.Count)
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

oq/oq.go Outdated
names = names[:5]
names = append(names, "...")
}
fmt.Fprintf(&sb, " names=[%s]", strings.Join(names, ", "))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 AGENTS.md violation: sb.WriteString(fmt.Sprintf(...)) instead of fmt.Fprintf in formatGroups names

AGENTS.md's staticcheck QF1012 rule states: "Use fmt.Fprintf(w, ...) instead of w.WriteString(fmt.Sprintf(...))." Line 819 uses sb.WriteString(fmt.Sprintf(" names=[%s]", strings.Join(names, ", "))) which should use fmt.Fprintf.

Suggested change
fmt.Fprintf(&sb, " names=[%s]", strings.Join(names, ", "))
fmt.Fprintf(&sb, " names=[%s]", strings.Join(names, ", "))
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

oq/oq.go Outdated
if i > 0 {
sb.WriteString(",\n")
}
fmt.Fprintf(&sb, ` {"key": %q, "count": %d, "names": [`, g.Key, g.Count)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 AGENTS.md violation: sb.WriteString(fmt.Sprintf(...)) instead of fmt.Fprintf in formatGroupsJSON

AGENTS.md's staticcheck QF1012 rule states: "Use fmt.Fprintf(w, ...) instead of w.WriteString(fmt.Sprintf(...))." Line 833 uses sb.WriteString(fmt.Sprintf(...)) which should use fmt.Fprintf.

Suggested change
fmt.Fprintf(&sb, ` {"key": %q, "count": %d, "names": [`, g.Key, g.Count)
fmt.Fprintf(&sb, ` {"key": %q, "count": %d, "names": [`, g.Key, g.Count)
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

oq/oq.go Outdated
if j > 0 {
sb.WriteString(", ")
}
fmt.Fprintf(&sb, "%q", n)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 AGENTS.md violation: sb.WriteString(fmt.Sprintf(...)) instead of fmt.Fprintf in formatGroupsJSON names

AGENTS.md's staticcheck QF1012 rule states: "Use fmt.Fprintf(w, ...) instead of w.WriteString(fmt.Sprintf(...))." Line 838 uses sb.WriteString(fmt.Sprintf("%q", n)) which should use fmt.Fprintf.

Suggested change
fmt.Fprintf(&sb, "%q", n)
fmt.Fprintf(&sb, "%q", n)
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

devin-ai-integration[bot]

This comment was marked as resolved.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 12, 2026

📊 Test Coverage Report

Current Coverage: 82.7%
Main Branch Coverage: 83.3%

Coverage Change: 📉 -.6% (decreased)

Coverage by Package

Package Coverage
arazzo/core 🟠 65.7%
overlay/loader 🟠 65.9%
graph 🟠 67.0%
extensions/core 🟡 75.0%
arazzo 🟡 76.8%
oq/expr 🟡 81.4%
values/core 🟡 81.7%
arazzo/criterion 🟡 83.5%
extensions 🟡 84.4%
oq 🟡 84.5%
internal/testutils 🟡 85.7%
json 🟡 85.7%
openapi 🟡 86.5%
marshaller 🟡 86.7%
overlay 🟡 86.7%
swagger/core 🟡 86.9%
references 🟡 88.0%
jsonschema/oas3 🟡 88.5%
swagger 🟡 89.8%
openapi/linter/converter 🟢 90.8%
yml 🟢 90.9%
system 🟢 91.7%
jsonpointer 🟢 91.9%
openapi/core 🟢 92.0%
expression 🟢 92.4%
hashing 🟢 92.8%
jsonschema/oas3/core 🟢 92.9%
values 🟢 93.0%
openapi/linter/rules 🟢 93.1%
walk 🟢 93.2%
linter 🟢 93.4%
sequencedmap 🟢 94.1%
internal/utils 🟢 95.9%
openapi/linter 🟢 98.7%
validation 🟢 99.0%
linter/format 🟢 99.3%
cache 🟢 100.0%
errors 🟢 100.0%
internal/interfaces 🟢 100.0%
internal/sliceutil 🟢 100.0%
internal/version 🟢 100.0%
linter/fix 🟢 100.0%
pointer 🟢 100.0%
📋 Detailed Coverage by Function (click to expand)
github.com/speakeasy-api/openapi/arazzo/arazzo.go:59:							WithSkipValidation				100.0%
github.com/speakeasy-api/openapi/arazzo/arazzo.go:67:							Unmarshal					91.7%
github.com/speakeasy-api/openapi/arazzo/arazzo.go:90:							Marshal						100.0%
github.com/speakeasy-api/openapi/arazzo/arazzo.go:95:							Sync						0.0%
github.com/speakeasy-api/openapi/arazzo/arazzo.go:103:							Validate					88.9%
github.com/speakeasy-api/openapi/arazzo/components.go:42:						Validate					84.6%
github.com/speakeasy-api/openapi/arazzo/core/criterion.go:33:						Unmarshal					90.0%
github.com/speakeasy-api/openapi/arazzo/core/criterion.go:73:						SyncChanges					72.2%
github.com/speakeasy-api/openapi/arazzo/core/factory_registration.go:11:				init						52.1%
github.com/speakeasy-api/openapi/arazzo/core/reusable.go:27:						Unmarshal					93.3%
github.com/speakeasy-api/openapi/arazzo/core/reusable.go:58:						SyncChanges					21.1%
github.com/speakeasy-api/openapi/arazzo/criterion/condition.go:42:					newCondition					87.5%
github.com/speakeasy-api/openapi/arazzo/criterion/condition.go:81:					Validate					60.0%
github.com/speakeasy-api/openapi/arazzo/criterion/condition.go:107:					handleQuotedString				100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:54:					Validate					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:85:					IsTypeProvided					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:105:					GetCore						100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:110:					IsTypeProvided					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:119:					GetType						100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:132:					GetVersion					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:140:					Populate					0.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:176:					Sync						66.7%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:184:					GetCondition					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:189:					Validate					94.4%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:229:					validateCondition				93.3%
github.com/speakeasy-api/openapi/arazzo/criterion/factory_registration.go:6:				init						50.0%
github.com/speakeasy-api/openapi/arazzo/factory_registration.go:12:					init						92.9%
github.com/speakeasy-api/openapi/arazzo/failureaction.go:58:						Validate					58.3%
github.com/speakeasy-api/openapi/arazzo/info.go:33:							Validate					75.0%
github.com/speakeasy-api/openapi/arazzo/parameter.go:50:						Validate					81.5%
github.com/speakeasy-api/openapi/arazzo/payloadreplacement.go:32:					Validate					76.5%
github.com/speakeasy-api/openapi/arazzo/requestbody.go:33:						Validate					93.3%
github.com/speakeasy-api/openapi/arazzo/reusable.go:42:							Get						66.7%
github.com/speakeasy-api/openapi/arazzo/reusable.go:50:							IsReference					100.0%
github.com/speakeasy-api/openapi/arazzo/reusable.go:54:							GetReferencedObject				7.7%
github.com/speakeasy-api/openapi/arazzo/reusable.go:102:						Validate					87.5%
github.com/speakeasy-api/openapi/arazzo/reusable.go:136:						validateReference				71.4%
github.com/speakeasy-api/openapi/arazzo/reusable.go:204:						validateComponentReference			62.5%
github.com/speakeasy-api/openapi/arazzo/reusable.go:227:						typeToComponentType				75.0%
github.com/speakeasy-api/openapi/arazzo/reusable.go:241:						componentTypeToReusableType			100.0%
github.com/speakeasy-api/openapi/arazzo/sourcedescription.go:21:					Find						100.0%
github.com/speakeasy-api/openapi/arazzo/sourcedescription.go:57:					Validate					76.9%
github.com/speakeasy-api/openapi/arazzo/step.go:23:							Find						100.0%
github.com/speakeasy-api/openapi/arazzo/step.go:69:							Validate					80.8%
github.com/speakeasy-api/openapi/arazzo/successaction.go:53:						Validate					75.0%
github.com/speakeasy-api/openapi/arazzo/successaction.go:118:						validationActionWorkflowIDAndStepID		77.8%
github.com/speakeasy-api/openapi/arazzo/walk.go:51:							Walk						100.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:60:							walk						69.2%
github.com/speakeasy-api/openapi/arazzo/walk.go:91:							walkInfo					66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:106:							walkSourceDescriptions				88.9%
github.com/speakeasy-api/openapi/arazzo/walk.go:125:							walkSourceDescription				66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:140:							walkWorkflows					100.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:159:							walkWorkflow					62.5%
github.com/speakeasy-api/openapi/arazzo/walk.go:199:							walkReusableParameters				88.9%
github.com/speakeasy-api/openapi/arazzo/walk.go:218:							walkReusableParameter				66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:234:							walkJSONSchema					87.5%
github.com/speakeasy-api/openapi/arazzo/walk.go:254:							convertSchemaMatchFunc				100.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:268:							convertSchemaLocation				100.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:286:							walkSteps					88.9%
github.com/speakeasy-api/openapi/arazzo/walk.go:305:							walkStep					66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:335:							walkReusableSuccessActions			88.9%
github.com/speakeasy-api/openapi/arazzo/walk.go:354:							walkReusableSuccessAction			66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:370:							walkReusableFailureActions			88.9%
github.com/speakeasy-api/openapi/arazzo/walk.go:389:							walkReusableFailureAction			66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:405:							walkComponents					64.3%
github.com/speakeasy-api/openapi/arazzo/walk.go:440:							walkComponentInputs				22.2%
github.com/speakeasy-api/openapi/arazzo/walk.go:459:							walkComponentParameters				77.8%
github.com/speakeasy-api/openapi/arazzo/walk.go:478:							walkParameter					66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:493:							walkComponentSuccessActions			77.8%
github.com/speakeasy-api/openapi/arazzo/walk.go:512:							walkSuccessAction				66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:527:							walkComponentFailureActions			77.8%
github.com/speakeasy-api/openapi/arazzo/walk.go:546:							walkFailureAction				66.7%
github.com/speakeasy-api/openapi/arazzo/walk.go:610:							getMatchFunc					55.0%
github.com/speakeasy-api/openapi/arazzo/workflow.go:22:							Find						100.0%
github.com/speakeasy-api/openapi/arazzo/workflow.go:65:							Validate					62.2%
github.com/speakeasy-api/openapi/cache/manager.go:23:							ClearAllCaches					100.0%
github.com/speakeasy-api/openapi/cache/manager.go:31:							ClearURLCache					100.0%
github.com/speakeasy-api/openapi/cache/manager.go:38:							ClearReferenceCache				100.0%
github.com/speakeasy-api/openapi/cache/manager.go:45:							ClearFieldCache					100.0%
github.com/speakeasy-api/openapi/cache/manager.go:57:							GetAllCacheStats				100.0%
github.com/speakeasy-api/openapi/errors/errors.go:16:							Error						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:21:							Is						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:26:							As						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:36:							Wrap						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:45:							Error						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:52:							Is						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:56:							As						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:60:							Unwrap						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:67:							Is						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:72:							As						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:77:							New						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:82:							Join						100.0%
github.com/speakeasy-api/openapi/errors/errors.go:90:							UnwrapErrors					100.0%
github.com/speakeasy-api/openapi/expression/expression.go:83:						String						100.0%
github.com/speakeasy-api/openapi/expression/expression.go:88:						Validate					100.0%
github.com/speakeasy-api/openapi/expression/expression.go:186:						IsExpression					83.3%
github.com/speakeasy-api/openapi/expression/expression.go:214:						GetType						100.0%
github.com/speakeasy-api/openapi/expression/expression.go:220:						GetParts					91.7%
github.com/speakeasy-api/openapi/expression/expression.go:242:						GetJSONPointer					100.0%
github.com/speakeasy-api/openapi/expression/expression.go:247:						getType						100.0%
github.com/speakeasy-api/openapi/expression/expression.go:262:						validateName					100.0%
github.com/speakeasy-api/openapi/expression/expressions.go:4:						ExtractExpressions				100.0%
github.com/speakeasy-api/openapi/expression/factory_registration.go:8:					init						50.0%
github.com/speakeasy-api/openapi/expression/value.go:11:						GetValueOrExpressionValue			91.7%
github.com/speakeasy-api/openapi/extensions/core/extensions.go:16:					UnmarshalExtensionModel				75.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:29:						NewElem						100.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:43:						New						75.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:55:						Init						100.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:60:						Len						66.7%
github.com/speakeasy-api/openapi/extensions/extensions.go:68:						SetCore						75.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:77:						GetCore						100.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:81:						Populate					100.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:99:						UnmarshalExtensionModel				66.7%
github.com/speakeasy-api/openapi/extensions/extensions.go:124:						GetExtensionValue				70.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:146:						IsEqual						100.0%
github.com/speakeasy-api/openapi/extensions/factory_registration.go:6:					init						75.0%
github.com/speakeasy-api/openapi/graph/graph.go:103:							Build						100.0%
github.com/speakeasy-api/openapi/graph/graph.go:129:							OutEdges					100.0%
github.com/speakeasy-api/openapi/graph/graph.go:134:							InEdges						0.0%
github.com/speakeasy-api/openapi/graph/graph.go:139:							SchemaByName					100.0%
github.com/speakeasy-api/openapi/graph/graph.go:147:							OperationSchemas				100.0%
github.com/speakeasy-api/openapi/graph/graph.go:157:							SchemaOperations				0.0%
github.com/speakeasy-api/openapi/graph/graph.go:167:							registerNodes					88.2%
github.com/speakeasy-api/openapi/graph/graph.go:240:							buildEdges					50.0%
github.com/speakeasy-api/openapi/graph/graph.go:381:							resolveChild					42.9%
github.com/speakeasy-api/openapi/graph/graph.go:397:							resolveRef					83.3%
github.com/speakeasy-api/openapi/graph/graph.go:408:							addEdge						100.0%
github.com/speakeasy-api/openapi/graph/graph.go:415:							buildOperationEdges				92.0%
github.com/speakeasy-api/openapi/graph/graph.go:472:							findOperationSchemas				86.8%
github.com/speakeasy-api/openapi/graph/graph.go:543:							reachableBFS					90.9%
github.com/speakeasy-api/openapi/graph/graph.go:564:							computeMetrics					95.0%
github.com/speakeasy-api/openapi/graph/graph.go:598:							computeDepth					90.0%
github.com/speakeasy-api/openapi/graph/graph.go:615:							detectCycle					64.3%
github.com/speakeasy-api/openapi/graph/graph.go:639:							Reachable					100.0%
github.com/speakeasy-api/openapi/graph/graph.go:651:							Ancestors					100.0%
github.com/speakeasy-api/openapi/graph/graph.go:678:							ShortestPath					91.7%
github.com/speakeasy-api/openapi/graph/graph.go:721:							SchemaOpCount					0.0%
github.com/speakeasy-api/openapi/graph/graph.go:728:							Neighbors					0.0%
github.com/speakeasy-api/openapi/graph/graph.go:762:							StronglyConnectedComponents			0.0%
github.com/speakeasy-api/openapi/graph/graph.go:825:							ConnectedComponent				0.0%
github.com/speakeasy-api/openapi/graph/graph.go:901:							intStr						100.0%
github.com/speakeasy-api/openapi/hashing/hashing.go:15:							Hash						100.0%
github.com/speakeasy-api/openapi/hashing/hashing.go:24:							formatHash					100.0%
github.com/speakeasy-api/openapi/hashing/hashing.go:39:							toHashableString				92.5%
github.com/speakeasy-api/openapi/hashing/hashing.go:126:						structToHashableString				87.0%
github.com/speakeasy-api/openapi/hashing/hashing.go:175:						yamlNodeToHashableString			91.7%
github.com/speakeasy-api/openapi/hashing/hashing.go:200:						sequencedMapToHashableString			85.7%
github.com/speakeasy-api/openapi/internal/interfaces/interfaces.go:41:					ImplementsInterface				100.0%
github.com/speakeasy-api/openapi/internal/sliceutil/sliceutil.go:3:					Map						100.0%
github.com/speakeasy-api/openapi/internal/testutils/utils.go:22:					CreateStringYamlNode				100.0%
github.com/speakeasy-api/openapi/internal/testutils/utils.go:35:					CreateIntYamlNode				100.0%
github.com/speakeasy-api/openapi/internal/testutils/utils.go:45:					CreateBoolYamlNode				100.0%
github.com/speakeasy-api/openapi/internal/testutils/utils.go:55:					CreateMapYamlNode				100.0%
github.com/speakeasy-api/openapi/internal/testutils/utils.go:72:					isInterfaceNil					100.0%
github.com/speakeasy-api/openapi/internal/testutils/utils.go:85:					AssertEqualSequencedMap				100.0%
github.com/speakeasy-api/openapi/internal/testutils/utils.go:132:					DownloadFile					0.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:33:					ClassifyReference				100.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:100:					IsURL						100.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:109:					IsFilePath					100.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:118:					IsFragment					100.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:130:					JoinWith					87.5%
github.com/speakeasy-api/openapi/internal/utils/references.go:166:					joinURL						66.7%
github.com/speakeasy-api/openapi/internal/utils/references.go:190:					joinFilePath					100.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:226:					getWindowsDir					80.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:237:					joinWindowsPaths				100.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:271:					isWindowsAbsolutePath				80.0%
github.com/speakeasy-api/openapi/internal/utils/references.go:285:					JoinReference					100.0%
github.com/speakeasy-api/openapi/internal/utils/slices.go:3:						MapSlice					100.0%
github.com/speakeasy-api/openapi/internal/utils/string_builder.go:12:					AnyToString					100.0%
github.com/speakeasy-api/openapi/internal/utils/string_builder.go:48:					BuildAbsoluteReference				100.0%
github.com/speakeasy-api/openapi/internal/utils/string_builder.go:57:					BuildString					100.0%
github.com/speakeasy-api/openapi/internal/utils/string_builder.go:79:					JoinWithSeparator				100.0%
github.com/speakeasy-api/openapi/internal/utils/url_cache.go:18:					ParseURLCached					100.0%
github.com/speakeasy-api/openapi/internal/utils/url_cache.go:25:					Parse						100.0%
github.com/speakeasy-api/openapi/internal/utils/url_cache.go:49:					Clear						100.0%
github.com/speakeasy-api/openapi/internal/utils/url_cache.go:62:					GetURLCacheStats				100.0%
github.com/speakeasy-api/openapi/internal/utils/url_cache.go:72:					ClearGlobalURLCache				100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:17:					New						100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:25:					String						100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:29:					Equal						100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:33:					GreaterThan					100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:49:					LessThan					100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:53:					IsOneOf						100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:65:					Parse						100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:98:					MustParse					100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:106:					IsGreaterOrEqual				100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:119:					IsLessThan					100.0%
github.com/speakeasy-api/openapi/json/json.go:18:							YAMLToJSON					100.0%
github.com/speakeasy-api/openapi/json/json.go:25:							YAMLToJSONWithConfig				76.9%
github.com/speakeasy-api/openapi/json/json.go:68:							isSingleLineFlowNode				88.9%
github.com/speakeasy-api/openapi/json/json.go:90:							hasSpaceAfterColon				83.3%
github.com/speakeasy-api/openapi/json/json.go:125:							hasSpaceAfterComma				85.7%
github.com/speakeasy-api/openapi/json/json.go:160:							write						100.0%
github.com/speakeasy-api/openapi/json/json.go:166:							writeByte					100.0%
github.com/speakeasy-api/openapi/json/json.go:175:							writeJSONNode					50.0%
github.com/speakeasy-api/openapi/json/json.go:210:							writeJSONObject					95.0%
github.com/speakeasy-api/openapi/json/json.go:300:							writeJSONArray					96.3%
github.com/speakeasy-api/openapi/json/json.go:358:							writeJSONScalar					89.5%
github.com/speakeasy-api/openapi/json/json.go:406:							hasInvalidJSONNumberFormat			90.0%
github.com/speakeasy-api/openapi/json/json.go:430:							resolveMergeKeys				90.0%
github.com/speakeasy-api/openapi/json/json.go:495:							shouldBeMultiLine				54.5%
github.com/speakeasy-api/openapi/json/json.go:522:							quoteJSONString					85.7%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:37:						WithStructTags					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:43:						getOptions					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:58:						String						100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:63:						Validate					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:74:						GetTarget					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:91:						PartsToJSONPointer				100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:100:					getCurrentStackTarget				100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:120:					getTarget					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:148:					getMapTarget					78.9%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:188:					getSliceTarget					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:223:					getStructTarget					87.5%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:275:					getKeyBasedStructTarget				96.9%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:340:					getIndexBasedStructTarget			87.5%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:356:					getNavigableWithKeyTarget			80.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:376:					getNavigableWithIndexTarget			80.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:396:					getNavigableNoderTarget				77.8%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:414:					buildPath					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:425:					EscapeString					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:429:					escape						100.0%
github.com/speakeasy-api/openapi/jsonpointer/models.go:16:						navigateModel					87.3%
github.com/speakeasy-api/openapi/jsonpointer/navigation.go:23:						unescapeValue					100.0%
github.com/speakeasy-api/openapi/jsonpointer/navigation.go:29:						getIndex					100.0%
github.com/speakeasy-api/openapi/jsonpointer/navigation.go:39:						getNavigationStack				100.0%
github.com/speakeasy-api/openapi/jsonpointer/yamlnode.go:10:						getYamlNodeTarget				61.1%
github.com/speakeasy-api/openapi/jsonpointer/yamlnode.go:51:						getYamlDocumentTarget				66.7%
github.com/speakeasy-api/openapi/jsonpointer/yamlnode.go:60:						getYamlMappingTarget				88.9%
github.com/speakeasy-api/openapi/jsonpointer/yamlnode.go:117:						getYamlSequenceTarget				90.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/core/factory_registration.go:10:			init						92.9%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:39:					GetPropertyName					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:47:					GetMapping					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:55:					GetDefaultMapping				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:63:					GetExtensions					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:71:					Validate					87.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:91:					IsEqual						88.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:31:					GetDescription					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:39:					GetURL						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:47:					GetExtensions					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:55:					IsEqual						92.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:84:					Validate					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/factory_registration.go:12:				init						90.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:35:						increment					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:162:						Inline						96.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:224:						analyzeReferences				75.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:404:						inlineRecursive					72.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:628:						getAbsRef					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:641:						inlineSchemaInPlace				81.8%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:664:						removeUnusedDefs				94.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:703:						generateUniqueDefName				25.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:719:						rewriteExternalReference			50.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/inline.go:799:						consolidateDefinitions				81.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:61:					NewJSONSchemaFromSchema				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:70:					NewJSONSchemaFromReference			100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:81:					NewJSONSchemaFromBool				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:91:					NewReferencedScheme				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:127:					IsSchema					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:137:					GetSchema					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:147:					IsBool						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:157:					GetBool						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:165:					GetExtensions					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:182:					GetParent					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:198:					GetTopLevelParent				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:211:					SetParent					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:224:					SetTopLevelParent				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:232:					IsEqual						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:247:					Validate					88.9%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:275:					ConcreteToReferenceable				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:283:					ReferenceableToConcrete				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:288:					ShallowCopy					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:321:					GetSchemaRegistry				80.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:338:					GetDocumentBaseURI				90.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:363:					normalizeDocumentBaseURI			60.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:379:					SetSchemaRegistry				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:387:					SetDocumentBaseURI				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:397:					GetEnclosingSchema				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:407:					SetEnclosingSchema				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:416:					PopulateWithContext				90.9%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:60:					NewSchemaRegistry				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:73:					RegisterSchema					95.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:120:					LookupByID					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:135:					LookupByAnchor					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:145:					GetBaseURI					75.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:165:					GetDocumentBaseURI				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:175:					computeBaseURI					92.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:206:					buildAnchorKey					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:216:					IsAbsoluteURI					83.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:231:					IsAnchorReference				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:252:					ExtractAnchor					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:270:					ResolveURI					85.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/registry.go:301:					normalizeURI					83.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:20:					IsResolved					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:29:					IsReference					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:39:					GetReference					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:49:					GetRef						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:58:					GetAbsRef					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:73:					Resolve						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:91:					GetResolvedObject				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:101:					GetResolvedSchema				88.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:140:					MustGetResolvedSchema				83.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:152:					GetReferenceResolutionInfo			85.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:168:					resolve						76.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:344:					joinReferenceChain				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:355:					resolveJSONSchemaWithTracking			95.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:400:					unmarshaler					71.4%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_chain.go:26:				GetReferenceChain				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_chain.go:63:				GetImmediateReference				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_chain.go:78:				GetTopLevelReference				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_defs.go:26:					resolveDefsReference				68.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_defs.go:80:					tryResolveLocalDefs				94.4%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_defs.go:158:				tryResolveDefsUsingJSONPointerNavigation	90.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_defs.go:204:				getParentJSONPointer				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_external.go:17:				resolveExternalAnchorReference			81.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_external.go:90:				resolveExternalRefWithFragment			81.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_external.go:168:				navigateJSONPointer				88.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_registry.go:13:				tryResolveViaRegistry				78.8%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_registry.go:146:				getSchemaRegistry				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_registry.go:175:				getEffectiveBaseURI				90.9%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_registry.go:208:				setupRemoteSchemaRegistry			90.9%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution_registry.go:241:				registerSchemaInRegistry			76.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:95:						ShallowCopy					72.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:199:						GetRef						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:207:						IsReference					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:215:						GetExclusiveMaximum				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:223:						GetExclusiveMinimum				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:231:						GetType						71.4%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:248:						GetAllOf					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:256:						GetOneOf					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:264:						GetAnyOf					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:272:						GetDiscriminator				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:280:						GetExamples					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:288:						GetPrefixItems					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:296:						GetContains					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:304:						GetMinContains					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:312:						GetMaxContains					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:320:						GetIf						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:328:						GetElse						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:336:						GetThen						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:344:						GetDependentSchemas				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:352:						GetPatternProperties				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:360:						GetPropertyNames				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:368:						GetUnevaluatedItems				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:376:						GetUnevaluatedProperties			100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:384:						GetItems					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:392:						GetAnchor					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:401:						GetID						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:409:						GetNot						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:417:						GetProperties					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:425:						GetDefs						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:433:						GetTitle					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:441:						GetMultipleOf					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:449:						GetMaximum					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:457:						GetMinimum					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:465:						GetMaxLength					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:473:						GetMinLength					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:481:						GetPattern					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:489:						GetFormat					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:498:						IsReferenceOnly					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:559:						GetMaxItems					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:567:						GetMinItems					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:575:						GetUniqueItems					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:583:						GetMaxProperties				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:591:						GetMinProperties				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:599:						GetRequired					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:607:						GetEnum						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:615:						GetAdditionalProperties				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:623:						GetDescription					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:631:						GetDefault					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:639:						GetConst					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:647:						GetNullable					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:655:						GetReadOnly					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:663:						GetWriteOnly					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:671:						GetExternalDocs					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:679:						GetExample					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:687:						GetDeprecated					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:695:						GetSchema					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:703:						GetXML						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:711:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:721:						IsEqual						61.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:969:						GetParent					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:978:						SetParent					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:987:						PopulateWithContext				85.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1044:					registerWithRegistry				78.6%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1087:					GetOwningDocument				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1096:					SetOwningDocument				57.1%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1115:					GetEffectiveBaseURI				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1123:					SetEffectiveBaseURI				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1132:					GetSchemaRegistry				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1141:					equalJSONSchemas				80.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1151:					equalJSONSchemaSlices				25.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1167:					equalSequencedMaps				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1197:					equalPtrs					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1207:					equalSlices					87.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1223:					equalValueSlices				87.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/validation.go:66:					Validate					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/validation.go:78:					Validate					91.4%
github.com/speakeasy-api/openapi/jsonschema/oas3/validation.go:158:					getRootCauses					82.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/validation.go:238:					initValidation					72.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:16:						NewExclusiveMaximumFromBool			100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:22:						NewExclusiveMaximumFromFloat64			100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:28:						NewExclusiveMinimumFromBool			100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:34:						NewExclusiveMinimumFromFloat64			100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:40:						NewTypeFromArray				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:47:						NewTypeFromString				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/walk.go:35:						WalkExternalDocs				75.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/walk.go:46:						Walk						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/walk.go:55:						walkSchema					54.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/walk.go:223:						walkExternalDocs				83.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/walk.go:259:						getSchemaMatchFunc				60.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:36:						GetName						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:44:						GetNamespace					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:52:						GetPrefix					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:60:						GetAttribute					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:68:						GetWrapped					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:76:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:84:						IsEqual						94.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:120:						Validate					100.0%
github.com/speakeasy-api/openapi/linter/config.go:45:							UnmarshalYAML					89.5%
github.com/speakeasy-api/openapi/linter/config.go:95:							UnmarshalYAML					91.7%
github.com/speakeasy-api/openapi/linter/config.go:120:							Validate					100.0%
github.com/speakeasy-api/openapi/linter/config.go:143:							GetSeverity					100.0%
github.com/speakeasy-api/openapi/linter/config.go:160:							UnmarshalYAML					90.0%
github.com/speakeasy-api/openapi/linter/config.go:187:							NewConfig					100.0%
github.com/speakeasy-api/openapi/linter/config.go:196:							parseSeverity					100.0%
github.com/speakeasy-api/openapi/linter/config_loader.go:12:						LoadConfig					88.2%
github.com/speakeasy-api/openapi/linter/config_loader.go:43:						LoadConfigFromFile				100.0%
github.com/speakeasy-api/openapi/linter/doc.go:16:							NewDocGenerator					100.0%
github.com/speakeasy-api/openapi/linter/doc.go:39:							GenerateRuleDoc					91.7%
github.com/speakeasy-api/openapi/linter/doc.go:71:							GenerateAllRuleDocs				100.0%
github.com/speakeasy-api/openapi/linter/doc.go:80:							GenerateCategoryDocs				100.0%
github.com/speakeasy-api/openapi/linter/doc.go:90:							WriteJSON					100.0%
github.com/speakeasy-api/openapi/linter/doc.go:102:							WriteMarkdown					61.9%
github.com/speakeasy-api/openapi/linter/doc.go:144:							writeRuleMarkdown				49.2%
github.com/speakeasy-api/openapi/linter/doc.go:256:							writeLine					100.0%
github.com/speakeasy-api/openapi/linter/doc.go:261:							writeEmptyLine					100.0%
github.com/speakeasy-api/openapi/linter/doc.go:266:							writeF						100.0%
github.com/speakeasy-api/openapi/linter/document.go:22:							NewDocumentInfo					100.0%
github.com/speakeasy-api/openapi/linter/document.go:30:							NewDocumentInfoWithIndex			100.0%
github.com/speakeasy-api/openapi/linter/fix/engine.go:83:						NewEngine					100.0%
github.com/speakeasy-api/openapi/linter/fix/engine.go:113:						ProcessErrors					100.0%
github.com/speakeasy-api/openapi/linter/fix/engine.go:252:						makeAppliedFix					100.0%
github.com/speakeasy-api/openapi/linter/fix/engine.go:262:						ApplyNodeFix					100.0%
github.com/speakeasy-api/openapi/linter/fix/registry.go:23:						NewFixRegistry					100.0%
github.com/speakeasy-api/openapi/linter/fix/registry.go:32:						Register					100.0%
github.com/speakeasy-api/openapi/linter/fix/registry.go:40:						GetFix						100.0%
github.com/speakeasy-api/openapi/linter/fix/terminal_prompter.go:20:					NewTerminalPrompter				100.0%
github.com/speakeasy-api/openapi/linter/fix/terminal_prompter.go:29:					writef						100.0%
github.com/speakeasy-api/openapi/linter/fix/terminal_prompter.go:33:					PromptFix					100.0%
github.com/speakeasy-api/openapi/linter/fix/terminal_prompter.go:52:					promptOne					100.0%
github.com/speakeasy-api/openapi/linter/fix/terminal_prompter.go:63:					promptChoice					100.0%
github.com/speakeasy-api/openapi/linter/fix/terminal_prompter.go:101:					promptFreeText					100.0%
github.com/speakeasy-api/openapi/linter/fix/terminal_prompter.go:129:					Confirm						100.0%
github.com/speakeasy-api/openapi/linter/format/json.go:13:						NewJSONFormatter				100.0%
github.com/speakeasy-api/openapi/linter/format/json.go:50:						Format						95.8%
github.com/speakeasy-api/openapi/linter/format/summary.go:16:						NewSummaryFormatter				100.0%
github.com/speakeasy-api/openapi/linter/format/summary.go:28:						Format						100.0%
github.com/speakeasy-api/openapi/linter/format/text.go:13:						NewTextFormatter				100.0%
github.com/speakeasy-api/openapi/linter/format/text.go:17:						Format						100.0%
github.com/speakeasy-api/openapi/linter/linter.go:36:							NewLinter					100.0%
github.com/speakeasy-api/openapi/linter/linter.go:47:							Registry					100.0%
github.com/speakeasy-api/openapi/linter/linter.go:52:							Lint						100.0%
github.com/speakeasy-api/openapi/linter/linter.go:75:							runRules					86.8%
github.com/speakeasy-api/openapi/linter/linter.go:156:							getEnabledRules					100.0%
github.com/speakeasy-api/openapi/linter/linter.go:213:							getRuleConfig					83.3%
github.com/speakeasy-api/openapi/linter/linter.go:240:							applySeverityOverrides				100.0%
github.com/speakeasy-api/openapi/linter/linter.go:254:							FilterErrors					80.0%
github.com/speakeasy-api/openapi/linter/linter.go:272:							formatOutput					100.0%
github.com/speakeasy-api/openapi/linter/linter.go:279:							buildOverrides					92.9%
github.com/speakeasy-api/openapi/linter/linter.go:301:							buildMatchFilters				90.9%
github.com/speakeasy-api/openapi/linter/linter.go:330:							applyMatchFilters				87.0%
github.com/speakeasy-api/openapi/linter/linter.go:382:							HasErrors					100.0%
github.com/speakeasy-api/openapi/linter/linter.go:397:							ErrorCount					100.0%
github.com/speakeasy-api/openapi/linter/linter.go:412:							FormatText					100.0%
github.com/speakeasy-api/openapi/linter/linter.go:418:							FormatJSON					100.0%
github.com/speakeasy-api/openapi/linter/linter.go:424:							FormatSummary					0.0%
github.com/speakeasy-api/openapi/linter/registry.go:15:							NewRegistry					100.0%
github.com/speakeasy-api/openapi/linter/registry.go:23:							Register					100.0%
github.com/speakeasy-api/openapi/linter/registry.go:28:							RegisterRuleset					100.0%
github.com/speakeasy-api/openapi/linter/registry.go:45:							GetRule						100.0%
github.com/speakeasy-api/openapi/linter/registry.go:51:							GetRuleset					100.0%
github.com/speakeasy-api/openapi/linter/registry.go:60:							AllRules					100.0%
github.com/speakeasy-api/openapi/linter/registry.go:73:							AllRuleIDs					100.0%
github.com/speakeasy-api/openapi/linter/registry.go:83:							AllCategories					100.0%
github.com/speakeasy-api/openapi/linter/registry.go:98:							AllRulesets					100.0%
github.com/speakeasy-api/openapi/linter/registry.go:109:						RulesetsContaining				100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:43:						GetRootNode					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:47:						GetRootNodeLine					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:54:						SetRootNode					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:63:						SetDocumentNode					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:67:						GetValid					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:71:						GetValidYaml					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:75:						DetermineValidity				85.7%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:90:						SetValid					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:95:						SetConfig					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:99:						GetConfig					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:103:						SetUnknownProperties				100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:107:						GetUnknownProperties				100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:118:						GetJSONPointer					87.5%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:141:						GetJSONPath					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:163:						Marshal						80.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:198:						resetNodeStylesForYAML				100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:203:						resetNodeStylesForYAMLRecursive			86.7%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:245:						findNodePath					85.7%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:279:						findNodePathInMapping				86.7%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:314:						findNodePathInSequence				83.3%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:330:						resolveAlias					60.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:344:						getNodeKeyString				66.7%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:359:						buildJSONPointer				100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:375:						escapeJSONPointerToken				100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:383:						buildJSONPath					94.4%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:418:						needsBracketNotation				100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:432:						escapeJSONPathProperty				100.0%
github.com/speakeasy-api/openapi/marshaller/extensions.go:35:						UnmarshalExtension				78.6%
github.com/speakeasy-api/openapi/marshaller/extensions.go:70:						syncExtensions					84.9%
github.com/speakeasy-api/openapi/marshaller/factory.go:43:						RegisterType					87.5%
github.com/speakeasy-api/openapi/marshaller/factory.go:63:						CreateInstance					100.0%
github.com/speakeasy-api/openapi/marshaller/factory.go:82:						IsRegistered					100.0%
github.com/speakeasy-api/openapi/marshaller/factory.go:92:						isTesting					100.0%
github.com/speakeasy-api/openapi/marshaller/factory.go:97:						init						58.0%
github.com/speakeasy-api/openapi/marshaller/factory.go:160:						buildFieldCacheForType				91.9%
github.com/speakeasy-api/openapi/marshaller/factory.go:255:						getFieldMapCached				100.0%
github.com/speakeasy-api/openapi/marshaller/factory.go:272:						ClearGlobalFieldCache				100.0%
github.com/speakeasy-api/openapi/marshaller/factory.go:285:						GetFieldCacheStats				100.0%
github.com/speakeasy-api/openapi/marshaller/marshal.go:26:						Marshal						66.7%
github.com/speakeasy-api/openapi/marshaller/marshal.go:48:						Sync						71.4%
github.com/speakeasy-api/openapi/marshaller/model.go:59:						GetCore						66.7%
github.com/speakeasy-api/openapi/marshaller/model.go:69:						GetCoreAny					100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:90:						GetRootNode					60.0%
github.com/speakeasy-api/openapi/marshaller/model.go:101:						GetRootNodeLine					80.0%
github.com/speakeasy-api/openapi/marshaller/model.go:112:						GetRootNodeColumn				80.0%
github.com/speakeasy-api/openapi/marshaller/model.go:123:						GetPropertyNode					92.3%
github.com/speakeasy-api/openapi/marshaller/model.go:156:						GetPropertyLine					100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:165:						SetCore						100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:172:						SetCoreAny					100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:180:						GetCachedReferencedObject			100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:187:						StoreReferencedObjectInCache			100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:191:						GetCachedReferenceDocument			85.7%
github.com/speakeasy-api/openapi/marshaller/model.go:203:						StoreReferenceDocumentInCache			100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:207:						GetCachedExternalDocument			0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:214:						StoreExternalDocumentInCache			0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:218:						InitCache					100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:35:							Unmarshal					100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:50:							GetValue					100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:54:							GetValueType					100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:58:							SyncValue					85.7%
github.com/speakeasy-api/openapi/marshaller/node.go:72:							SetPresent					100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:76:							GetKeyNode					100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:80:							GetKeyNodeOrRoot				100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:87:							GetKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:95:							GetValueNode					100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:99:							GetValueNodeOrRoot				100.0%
github.com/speakeasy-api/openapi/marshaller/node.go:106:						GetValueNodeOrRootLine				75.0%
github.com/speakeasy-api/openapi/marshaller/node.go:115:						GetSliceValueNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/marshaller/node.go:133:						GetMapKeyNodeOrRoot				88.9%
github.com/speakeasy-api/openapi/marshaller/node.go:152:						GetMapKeyNodeOrRootLine				75.0%
github.com/speakeasy-api/openapi/marshaller/node.go:161:						GetMapValueNodeOrRoot				88.9%
github.com/speakeasy-api/openapi/marshaller/node.go:180:						GetNavigableNode				100.0%
github.com/speakeasy-api/openapi/marshaller/nodecollector.go:19:					CollectLeafNodes				100.0%
github.com/speakeasy-api/openapi/marshaller/nodecollector.go:30:					collectLeafNodesRecursive			86.4%
github.com/speakeasy-api/openapi/marshaller/nodecollector.go:79:					isNodeType					88.2%
github.com/speakeasy-api/openapi/marshaller/nodecollector.go:116:					collectFromNodeField				80.0%
github.com/speakeasy-api/openapi/marshaller/nodecollector.go:163:					isLeafValueType					50.0%
github.com/speakeasy-api/openapi/marshaller/nodecollector.go:212:					hasCoreModelerMethod				85.7%
github.com/speakeasy-api/openapi/marshaller/nodecollector.go:228:					collectYAMLNodeChildren				100.0%
github.com/speakeasy-api/openapi/marshaller/populator.go:46:						PopulateWithContext				47.4%
github.com/speakeasy-api/openapi/marshaller/populator.go:85:						PopulateModelWithContext			81.4%
github.com/speakeasy-api/openapi/marshaller/populator.go:192:						populateValue					75.4%
github.com/speakeasy-api/openapi/marshaller/populator.go:318:						getSequencedMapInterface			68.2%
github.com/speakeasy-api/openapi/marshaller/populator.go:366:						getSourceForPopulation				22.2%
github.com/speakeasy-api/openapi/marshaller/populator.go:385:						isEmbeddedSequencedMapType			100.0%
github.com/speakeasy-api/openapi/marshaller/sequencedmap.go:25:						unmarshalSequencedMap				82.5%
github.com/speakeasy-api/openapi/marshaller/sequencedmap.go:168:					populateSequencedMap				80.0%
github.com/speakeasy-api/openapi/marshaller/sequencedmap.go:243:					syncSequencedMapChanges				80.9%
github.com/speakeasy-api/openapi/marshaller/syncer.go:20:						SyncValue					85.7%
github.com/speakeasy-api/openapi/marshaller/syncer.go:100:						syncChanges					78.9%
github.com/speakeasy-api/openapi/marshaller/syncer.go:282:						syncArraySlice					84.6%
github.com/speakeasy-api/openapi/marshaller/syncer.go:376:						reorderArrayElements				75.5%
github.com/speakeasy-api/openapi/marshaller/syncer.go:475:						dereferenceAndInitializeIfNeededToLastPtr	100.0%
github.com/speakeasy-api/openapi/marshaller/syncer.go:494:						dereferenceToLastPtr				100.0%
github.com/speakeasy-api/openapi/marshaller/syncer.go:502:						getUnderlyingValue				100.0%
github.com/speakeasy-api/openapi/marshaller/syncer.go:510:						initializeAndGetSequencedMapInterface		82.4%
github.com/speakeasy-api/openapi/marshaller/syncer.go:551:						getSourceInterface				42.9%
github.com/speakeasy-api/openapi/marshaller/syncer.go:567:						dereferenceType					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:33:						Unmarshal					78.6%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:64:						UnmarshalNode					77.8%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:83:						UnmarshalCore					89.5%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:120:					UnmarshalModel					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:124:					UnmarshalKeyValuePair				100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:141:					DecodeNode					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:145:					unmarshal					79.7%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:263:					unmarshalMapping				75.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:288:					unmarshalModel					88.3%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:549:					unmarshalStruct					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:553:					decodeNode					80.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:576:					unmarshalSequence				82.6%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:620:					unmarshalNode					66.7%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:671:					implementsInterface				75.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:692:					isEmbeddedSequencedMap				100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:697:					isStructType					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:702:					isSliceType					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:707:					isMapType					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:712:					validateNodeKind				93.5%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:773:					asTypeMismatchError				75.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:782:					initializeEmbeddedSequencedMap			50.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:14:						Bootstrap					100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:31:						createBootstrapInfo				100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:50:						createBootstrapServers				100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:64:						createBootstrapTags				100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:80:						createBootstrapPaths				100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:123:						createUserResponses				100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:132:						createBootstrapComponents			100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:141:						createBootstrapSchemas				100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:198:						createBootstrapResponses			100.0%
github.com/speakeasy-api/openapi/openapi/bootstrap.go:234:						createBootstrapSecuritySchemes			100.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:117:							Bundle						84.6%
github.com/speakeasy-api/openapi/openapi/bundle.go:193:							bundleObject					80.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:236:							bundleSchema					83.3%
github.com/speakeasy-api/openapi/openapi/bundle.go:312:							rewriteRefsInBundledSchemas			83.3%
github.com/speakeasy-api/openapi/openapi/bundle.go:329:							prepareSourceURI				66.7%
github.com/speakeasy-api/openapi/openapi/bundle.go:349:							rewriteRefsInSchema				73.7%
github.com/speakeasy-api/openapi/openapi/bundle.go:389:							rewriteRefsInBundledComponents			85.7%
github.com/speakeasy-api/openapi/openapi/bundle.go:407:							walkAndUpdateRefsInComponent			45.5%
github.com/speakeasy-api/openapi/openapi/bundle.go:436:							walkAndUpdateRefsInResponse			85.7%
github.com/speakeasy-api/openapi/openapi/bundle.go:468:							walkAndUpdateRefsInParameter			55.6%
github.com/speakeasy-api/openapi/openapi/bundle.go:491:							walkAndUpdateRefsInRequestBody			70.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:514:							walkAndUpdateRefsInCallback			0.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:530:							walkAndUpdateRefsInPathItem			0.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:548:							walkAndUpdateRefsInLink				0.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:554:							walkAndUpdateRefsInExample			0.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:560:							walkAndUpdateRefsInSecurityScheme		0.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:566:							walkAndUpdateRefsInHeader			44.4%
github.com/speakeasy-api/openapi/openapi/bundle.go:589:							updateSchemaRefWithSource			87.5%
github.com/speakeasy-api/openapi/openapi/bundle.go:605:							updateComponentRefWithSource			85.7%
github.com/speakeasy-api/openapi/openapi/bundle.go:620:							bundleGenericReference				81.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:723:							getFinalAbsoluteRef				73.7%
github.com/speakeasy-api/openapi/openapi/bundle.go:764:							getFinalResolutionInfo				50.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:788:							generateComponentName				80.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:803:							generateComponentNameWithHashConflictResolution	90.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:833:							generateFilePathBasedNameWithConflictResolution	100.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:847:							generateFilePathBasedName			92.3%
github.com/speakeasy-api/openapi/openapi/bundle.go:904:							normalizePathForComponentName			86.5%
github.com/speakeasy-api/openapi/openapi/bundle.go:995:							generateCounterBasedName			100.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:1011:						updateReferencesToComponents			79.2%
github.com/speakeasy-api/openapi/openapi/bundle.go:1068:						updateReference					100.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:1085:						addComponentsToDocument				59.6%
github.com/speakeasy-api/openapi/openapi/bundle.go:1208:						handleReference					83.3%
github.com/speakeasy-api/openapi/openapi/bundle.go:1309:						makeReferenceRelativeForNaming			73.9%
github.com/speakeasy-api/openapi/openapi/bundle.go:1365:						detectPathStyle					0.0%
github.com/speakeasy-api/openapi/openapi/bundle.go:1381:						isInternalReference				83.3%
github.com/speakeasy-api/openapi/openapi/bundle.go:1393:						extractSimpleNameFromReference			92.9%
github.com/speakeasy-api/openapi/openapi/bundle.go:1418:						findCircularReferenceMatch			33.3%
github.com/speakeasy-api/openapi/openapi/callbacks.go:30:						NewCallback					100.0%
github.com/speakeasy-api/openapi/openapi/callbacks.go:37:						Len						100.0%
github.com/speakeasy-api/openapi/openapi/callbacks.go:45:						GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/callbacks.go:52:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:71:							Clean						90.9%
github.com/speakeasy-api/openapi/openapi/clean.go:171:							trackSchemaReferences				85.7%
github.com/speakeasy-api/openapi/openapi/clean.go:200:							trackPathItemReference				100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:213:							trackParameterReference				100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:226:							trackExampleReference				100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:239:							trackRequestBodyReference			100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:252:							trackResponseReference				100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:265:							trackHeaderReference				100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:278:							trackCallbackReference				100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:291:							trackLinkReference				100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:304:							trackSecuritySchemeReference			28.6%
github.com/speakeasy-api/openapi/openapi/clean.go:317:							trackOperationTags				85.7%
github.com/speakeasy-api/openapi/openapi/clean.go:331:							trackSecurityRequirementNames			80.0%
github.com/speakeasy-api/openapi/openapi/clean.go:342:							extractComponentName				75.0%
github.com/speakeasy-api/openapi/openapi/clean.go:351:							removeUnusedComponentsFromDocument		100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:523:							removeUnusedTagsFromDocument			81.2%
github.com/speakeasy-api/openapi/openapi/clean.go:559:							walkAndTrackWithFilter				95.0%
github.com/speakeasy-api/openapi/openapi/clean.go:623:							extractComponentTypeAndName			81.8%
github.com/speakeasy-api/openapi/openapi/clean.go:644:							unescapeJSONPointerToken			100.0%
github.com/speakeasy-api/openapi/openapi/clean.go:653:							countTracked					92.9%
github.com/speakeasy-api/openapi/openapi/components.go:47:						GetSchemas					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:55:						GetResponses					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:63:						GetParameters					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:71:						GetExamples					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:79:						GetRequestBodies				100.0%
github.com/speakeasy-api/openapi/openapi/components.go:87:						GetHeaders					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:95:						GetSecuritySchemes				100.0%
github.com/speakeasy-api/openapi/openapi/components.go:103:						GetLinks					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:111:						GetCallbacks					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:119:						GetPathItems					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:127:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/components.go:135:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/core/callbacks.go:17:						NewCallback					100.0%
github.com/speakeasy-api/openapi/openapi/core/callbacks.go:23:						GetMapKeyNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/openapi/core/callbacks.go:41:						GetMapKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/openapi/core/factory_registration.go:11:				init						58.5%
github.com/speakeasy-api/openapi/openapi/core/paths.go:17:						NewPaths					100.0%
github.com/speakeasy-api/openapi/openapi/core/paths.go:23:						GetMapKeyNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/openapi/core/paths.go:41:						GetMapKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/openapi/core/paths.go:64:						NewPathItem					100.0%
github.com/speakeasy-api/openapi/openapi/core/paths.go:70:						GetMapKeyNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/openapi/core/paths.go:88:						GetMapKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/openapi/core/reference.go:28:						Unmarshal					93.3%
github.com/speakeasy-api/openapi/openapi/core/reference.go:57:						SyncChanges					66.7%
github.com/speakeasy-api/openapi/openapi/core/responses.go:18:						NewResponses					100.0%
github.com/speakeasy-api/openapi/openapi/core/responses.go:24:						GetMapKeyNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/openapi/core/responses.go:42:						GetMapKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/openapi/core/security.go:31:						NewSecurityRequirement				100.0%
github.com/speakeasy-api/openapi/openapi/core/security.go:37:						GetMapKeyNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/openapi/core/security.go:55:						GetMapKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:42:						GetContentType					33.3%
github.com/speakeasy-api/openapi/openapi/encoding.go:69:						GetContentTypeValue				100.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:77:						GetStyle					100.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:86:						GetExplode					100.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:94:						GetAllowReserved				100.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:102:						GetHeaders					100.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:110:						GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/encoding.go:118:						Validate					94.4%
github.com/speakeasy-api/openapi/openapi/examples.go:40:						GetSummary					100.0%
github.com/speakeasy-api/openapi/openapi/examples.go:48:						GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/examples.go:56:						GetValue					100.0%
github.com/speakeasy-api/openapi/openapi/examples.go:64:						GetExternalValue				100.0%
github.com/speakeasy-api/openapi/openapi/examples.go:72:						GetDataValue					100.0%
github.com/speakeasy-api/openapi/openapi/examples.go:80:						GetSerializedValue				100.0%
github.com/speakeasy-api/openapi/openapi/examples.go:88:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/examples.go:96:						ResolveExternalValue				100.0%
github.com/speakeasy-api/openapi/openapi/examples.go:102:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/factory_registration.go:13:					init						93.9%
github.com/speakeasy-api/openapi/openapi/header.go:48:							GetSchema					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:56:							GetRequired					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:64:							GetDeprecated					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:72:							GetStyle					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:80:							GetExplode					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:88:							GetContent					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:96:							GetExample					66.7%
github.com/speakeasy-api/openapi/openapi/header.go:104:							GetExamples					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:112:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:120:							GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/header.go:128:							Validate					93.8%
github.com/speakeasy-api/openapi/openapi/index.go:83:							currentDocumentPath				60.0%
github.com/speakeasy-api/openapi/openapi/index.go:249:							WithNodeOperationMap				100.0%
github.com/speakeasy-api/openapi/openapi/index.go:256:							IsWebhookLocation				100.0%
github.com/speakeasy-api/openapi/openapi/index.go:267:							ExtractOperationInfo				100.0%
github.com/speakeasy-api/openapi/openapi/index.go:297:							BuildIndex					81.2%
github.com/speakeasy-api/openapi/openapi/index.go:352:							GetAllSchemas					100.0%
github.com/speakeasy-api/openapi/openapi/index.go:372:							GetAllPathItems					100.0%
github.com/speakeasy-api/openapi/openapi/index.go:390:							GetAllParameters				87.5%
github.com/speakeasy-api/openapi/openapi/index.go:408:							GetAllResponses					87.5%
github.com/speakeasy-api/openapi/openapi/index.go:426:							GetAllRequestBodies				87.5%
github.com/speakeasy-api/openapi/openapi/index.go:444:							GetAllHeaders					87.5%
github.com/speakeasy-api/openapi/openapi/index.go:462:							GetAllExamples					87.5%
github.com/speakeasy-api/openapi/openapi/index.go:480:							GetAllLinks					87.5%
github.com/speakeasy-api/openapi/openapi/index.go:498:							GetAllCallbacks					87.5%
github.com/speakeasy-api/openapi/openapi/index.go:528:							GetAllReferences				92.0%
github.com/speakeasy-api/openapi/openapi/index.go:630:							GetValidationErrors				100.0%
github.com/speakeasy-api/openapi/openapi/index.go:638:							GetResolutionErrors				100.0%
github.com/speakeasy-api/openapi/openapi/index.go:646:							GetCircularReferenceErrors			100.0%
github.com/speakeasy-api/openapi/openapi/index.go:654:							GetAllErrors					100.0%
github.com/speakeasy-api/openapi/openapi/index.go:666:							HasErrors					100.0%
github.com/speakeasy-api/openapi/openapi/index.go:674:							GetValidCircularRefCount			100.0%
github.com/speakeasy-api/openapi/openapi/index.go:682:							GetInvalidCircularRefCount			100.0%
github.com/speakeasy-api/openapi/openapi/index.go:692:							GetNodeOperations				100.0%
github.com/speakeasy-api/openapi/openapi/index.go:700:							registerNodeWithOperation			88.9%
github.com/speakeasy-api/openapi/openapi/index.go:720:							buildIndex					89.7%
github.com/speakeasy-api/openapi/openapi/index.go:858:							indexSchema					91.9%
github.com/speakeasy-api/openapi/openapi/index.go:1076:							isTopLevelExternalSchema			100.0%
github.com/speakeasy-api/openapi/openapi/index.go:1093:							isFromMainDocument				80.0%
github.com/speakeasy-api/openapi/openapi/index.go:1105:							buildPathSegmentsFromStack			100.0%
github.com/speakeasy-api/openapi/openapi/index.go:1127:							buildCircularReferenceChain			100.0%
github.com/speakeasy-api/openapi/openapi/index.go:1137:							checkUnknownProperties				88.9%
github.com/speakeasy-api/openapi/openapi/index.go:1180:							indexExternalDocs				100.0%
github.com/speakeasy-api/openapi/openapi/index.go:1187:							indexTag					100.0%
github.com/speakeasy-api/openapi/openapi/index.go:1194:							indexServer					100.0%
github.com/speakeasy-api/openapi/openapi/index.go:1201:							indexServerVariable				100.0%
github.com/speakeasy-api/openapi/openapi/index.go:1208:							indexReferencedPathItem				82.0%
github.com/speakeasy-api/openapi/openapi/index.go:1317:							indexOperation					85.7%
github.com/speakeasy-api/openapi/openapi/index.go:1335:							indexReferencedParameter			95.1%
github.com/speakeasy-api/openapi/openapi/index.go:1424:							indexResponses					66.7%
github.com/speakeasy-api/openapi/openapi/index.go:1434:							indexReferencedResponse				95.1%
github.com/speakeasy-api/openapi/openapi/index.go:1523:							indexReferencedRequestBody			95.1%
github.com/speakeasy-api/openapi/openapi/index.go:1612:							indexReferencedHeader				85.4%
github.com/speakeasy-api/openapi/openapi/index.go:1701:							indexReferencedExample				85.4%
github.com/speakeasy-api/openapi/openapi/index.go:1790:							indexReferencedLink				85.4%
github.com/speakeasy-api/openapi/openapi/index.go:1879:							indexReferencedCallback				95.1%
github.com/speakeasy-api/openapi/openapi/index.go:1968:							indexReferencedSecurityScheme			40.0%
github.com/speakeasy-api/openapi/openapi/index.go:1996:							indexSecurityRequirement			0.0%
github.com/speakeasy-api/openapi/openapi/index.go:2007:							indexDiscriminator				66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2017:							indexXML					0.0%
github.com/speakeasy-api/openapi/openapi/index.go:2027:							indexMediaType					66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2037:							indexEncoding					0.0%
github.com/speakeasy-api/openapi/openapi/index.go:2047:							indexOAuthFlows					66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2057:							indexOAuthFlow					66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2067:							indexDescriptionNode				66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2077:							indexSummaryNode				66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2087:							indexDescriptionAndSummaryNode			66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2097:							documentPathForSchema				50.0%
github.com/speakeasy-api/openapi/openapi/index.go:2126:							applyDocumentLocation				14.3%
github.com/speakeasy-api/openapi/openapi/index.go:2150:							referenceValidationOptions			66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2166:							getCurrentResolveOptions			100.0%
github.com/speakeasy-api/openapi/openapi/index.go:2186:							documentPathForReference			71.4%
github.com/speakeasy-api/openapi/openapi/index.go:2201:							resolveAndValidateReference			69.2%
github.com/speakeasy-api/openapi/openapi/index.go:2232:							isTopLevelComponent				85.7%
github.com/speakeasy-api/openapi/openapi/index.go:2253:							getParentSchema					63.6%
github.com/speakeasy-api/openapi/openapi/index.go:2278:							buildPathSegment				95.8%
github.com/speakeasy-api/openapi/openapi/index.go:2333:							isNullable					88.9%
github.com/speakeasy-api/openapi/openapi/index.go:2356:							classifyCircularPath				80.0%
github.com/speakeasy-api/openapi/openapi/index.go:2427:							countPolymorphicBranches			46.2%
github.com/speakeasy-api/openapi/openapi/index.go:2456:							pathAllowsTermination				0.0%
github.com/speakeasy-api/openapi/openapi/index.go:2483:							joinReferenceChainWithArrows			80.0%
github.com/speakeasy-api/openapi/openapi/index.go:2501:							recordPolymorphicBranch				66.7%
github.com/speakeasy-api/openapi/openapi/index.go:2510:							finalizePolymorphicCirculars			80.0%
github.com/speakeasy-api/openapi/openapi/index.go:2563:							copyLocations					80.0%
github.com/speakeasy-api/openapi/openapi/index.go:2574:							getRefTarget					62.5%
github.com/speakeasy-api/openapi/openapi/index.go:2592:							getSchemaErrorNode				60.0%
github.com/speakeasy-api/openapi/openapi/info.go:42:							GetTitle					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:50:							GetVersion					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:58:							GetSummary					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:66:							GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:74:							GetTermsOfService				100.0%
github.com/speakeasy-api/openapi/openapi/info.go:82:							GetContact					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:90:							GetLicense					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:98:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:106:							Validate					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:153:							GetName						100.0%
github.com/speakeasy-api/openapi/openapi/info.go:161:							GetURL						100.0%
github.com/speakeasy-api/openapi/openapi/info.go:169:							GetEmail					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:177:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:185:							Validate					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:223:							GetName						100.0%
github.com/speakeasy-api/openapi/openapi/info.go:231:							GetIdentifier					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:239:							GetURL						100.0%
github.com/speakeasy-api/openapi/openapi/info.go:247:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:255:							Validate					100.0%
github.com/speakeasy-api/openapi/openapi/inline.go:135:							Inline						88.9%
github.com/speakeasy-api/openapi/openapi/inline.go:156:							inlineObject					88.2%
github.com/speakeasy-api/openapi/openapi/inline.go:315:							inlineReference					80.0%
github.com/speakeasy-api/openapi/openapi/inline.go:364:							rewriteRefsWithMapping				65.0%
github.com/speakeasy-api/openapi/openapi/inline.go:403:							removeUnusedComponents				94.1%
github.com/speakeasy-api/openapi/openapi/join.go:66:							Join						94.1%
github.com/speakeasy-api/openapi/openapi/join.go:102:							initializeUsedNames				74.5%
github.com/speakeasy-api/openapi/openapi/join.go:194:							joinSingleDocument				83.3%
github.com/speakeasy-api/openapi/openapi/join.go:230:							joinPaths					71.4%
github.com/speakeasy-api/openapi/openapi/join.go:282:							mergePathItemOperations				92.3%
github.com/speakeasy-api/openapi/openapi/join.go:319:							createPathItemWithOperations			100.0%
github.com/speakeasy-api/openapi/openapi/join.go:331:							generateConflictPath				100.0%
github.com/speakeasy-api/openapi/openapi/join.go:347:							joinWebhooks					83.3%
github.com/speakeasy-api/openapi/openapi/join.go:364:							joinComponents					62.5%
github.com/speakeasy-api/openapi/openapi/join.go:386:							joinSchemas					89.5%
github.com/speakeasy-api/openapi/openapi/join.go:426:							joinOtherComponents				50.3%
github.com/speakeasy-api/openapi/openapi/join.go:667:							generateJoinComponentName			75.0%
github.com/speakeasy-api/openapi/openapi/join.go:679:							generateJoinFilePathBasedName			84.6%
github.com/speakeasy-api/openapi/openapi/join.go:707:							generateJoinCounterBasedName			100.0%
github.com/speakeasy-api/openapi/openapi/join.go:719:							updateReferencesInDocument			79.2%
github.com/speakeasy-api/openapi/openapi/join.go:778:							updateComponentReference			20.0%
github.com/speakeasy-api/openapi/openapi/join.go:797:							joinTags					100.0%
github.com/speakeasy-api/openapi/openapi/join.go:820:							collectOperationIds				81.2%
github.com/speakeasy-api/openapi/openapi/join.go:857:							resolveOperationIdConflicts			69.6%
github.com/speakeasy-api/openapi/openapi/join.go:909:							generateDocumentName				100.0%
github.com/speakeasy-api/openapi/openapi/join.go:924:							joinServersAndSecurity				100.0%
github.com/speakeasy-api/openapi/openapi/join.go:951:							areServersIdentical				85.7%
github.com/speakeasy-api/openapi/openapi/join.go:970:							areSecurityIdentical				100.0%
github.com/speakeasy-api/openapi/openapi/join.go:986:							applyGlobalServersSecurityToOperations		83.3%
github.com/speakeasy-api/openapi/openapi/links.go:41:							GetOperationID					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:49:							GetOperationRef					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:57:							GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:65:							GetParameters					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:73:							GetRequestBody					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:81:							GetServer					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:89:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:96:							ResolveOperation				100.0%
github.com/speakeasy-api/openapi/openapi/links.go:101:							Validate					91.7%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:11:				GenerateRuleTypeScript				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:75:				generateBody					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:110:				generateDirectAccess				91.7%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:135:				generateCollectionAccess			95.2%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:179:				generateCheckCode				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:193:				generateFunctionCheck				60.7%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:256:				generatePatternCheck				56.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:288:				generateEnumerationCheck			100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:302:				generateLengthCheck				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:319:				generateCasingCheck				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:330:				generateAlphabeticalCheck			88.9%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:355:				generateXorCheck				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:369:				generateOrCheck					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:439:				generateFieldAccess				81.8%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:469:				toClassName					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:489:				escapeTS					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:499:				mapSeverityToTSSeverity				60.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:515:				inferCategory					75.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:524:				summaryFromDesc					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:539:				formatsToVersions				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:575:				buildMessage					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:596:				expandMessageTemplate				84.6%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:615:				casingRegex					66.7%
github.com/speakeasy-api/openapi/openapi/linter/converter/codegen.go:637:				joinQuoted					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:28:				WithRulesDir					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:35:				WithRulePrefix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:41:				defaultOptions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:64:				WriteFiles					79.2%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:108:				Generate					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:157:				mapExtends					92.3%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:197:				processOverride					92.3%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:261:				processCustomRule				65.2%
github.com/speakeasy-api/openapi/openapi/linter/converter/generate.go:311:				toValidationSeverity				60.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/ir.go:63:					IsOverride					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/ir.go:66:					IsDisabled					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/ir.go:93:					PatternOptions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/ir.go:107:					EnumerationOptions				76.9%
github.com/speakeasy-api/openapi/openapi/linter/converter/ir.go:132:					LengthOptions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/ir.go:146:					CasingOptions					80.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/ir.go:157:					PropertyOptions					76.9%
github.com/speakeasy-api/openapi/openapi/linter/converter/ir.go:182:					toInt						40.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:52:				MapJSONPath					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:162:				matchPathPattern				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:175:				matchPathsOperationResponses			100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:184:				matchPathsOperationRequestBody			100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:191:				matchPathsMethod				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:203:				matchPathsAllOps				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:210:				matchPathsItems					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:220:				matchParameters					80.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:231:				matchInfoContact				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:238:				matchInfoLicense				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:245:				matchInfoField					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:255:				matchInfo					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:262:				matchServersField				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:275:				matchServers					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:282:				matchTagsField					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:292:				matchTags					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:299:				matchComponentSchemas				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:306:				matchComponentResponses				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:313:				matchComponentParameters			100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:320:				matchComponentSecuritySchemes			100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:327:				matchComponentExamples				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:334:				matchDefinitions				80.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:346:				matchProperties					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:353:				matchComponents					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:360:				matchDescriptionNodes				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:367:				matchSummaryNodes				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:374:				matchRoot					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/jsonpath.go:385:				stripFilters					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/mapping.go:66:				LookupNativeRule				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/mapping.go:73:				mapSeverityToNative				100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:17:					Parse						91.7%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:44:					ParseFile					80.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:55:					parseSpectral					88.9%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:122:					parseLegacy					96.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:196:					UnmarshalYAML					80.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:228:					parseExtends					100.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:240:					UnmarshalYAML					94.4%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:293:					UnmarshalYAML					88.9%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:315:					UnmarshalYAML					75.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:343:					toRule						73.1%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:441:					normalizeSeverity				66.7%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:463:					normalizeNumericSeverity			75.0%
github.com/speakeasy-api/openapi/openapi/linter/converter/parse.go:473:					numericToSeverity				33.3%
github.com/speakeasy-api/openapi/openapi/linter/linter.go:26:						RegisterCustomRuleLoader			100.0%
github.com/speakeasy-api/openapi/openapi/linter/linter.go:54:						WithoutDefaultRules				100.0%
github.com/speakeasy-api/openapi/openapi/linter/linter.go:76:						NewLinter					94.4%
github.com/speakeasy-api/openapi/openapi/linter/linter.go:115:						Registry					100.0%
github.com/speakeasy-api/openapi/openapi/linter/linter.go:121:						FilterErrors					100.0%
github.com/speakeasy-api/openapi/openapi/linter/linter.go:127:						Lint						95.2%
github.com/speakeasy-api/openapi/openapi/linter/linter.go:174:						registerDefaultRules				100.0%
github.com/speakeasy-api/openapi/openapi/linter/linter.go:244:						registerRulesets				100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:16:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:20:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:24:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:28:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:32:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:36:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:40:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:44:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/component_description.go:48:			Run						98.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:20:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:24:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:28:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:32:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:36:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:40:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:44:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/contact_properties.go:48:				Run						90.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:18:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:19:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:20:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:24:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:27:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:30:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:33:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:36:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/description_duplication.go:40:			Run						94.1%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:17:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:18:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:19:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:22:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:25:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:28:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:31:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:34:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:38:			Run						89.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:82:			findDuplicateIndices				100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:107:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:108:			Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:109:			Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:110:			SetInput					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:111:			Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:113:			ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:129:			nodeToString					66.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/duplicated_entry_in_enum.go:152:			nodeToDisplayString				66.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:6:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:7:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:8:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:9:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:10:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:11:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:12:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:13:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:14:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:15:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:16:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:17:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:18:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:19:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:20:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:21:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:22:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:23:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:24:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:25:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:26:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:27:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:28:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:29:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:30:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:31:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:32:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:33:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:34:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:35:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:36:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:37:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_available.go:38:				FixAvailable					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:21:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:24:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:25:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:26:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:27:				Apply						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:29:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:57:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:60:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:61:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:62:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:63:				Apply						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:65:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:113:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:116:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:117:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:126:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:134:				Apply						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:136:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:153:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:154:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:155:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:163:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:173:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:175:				ApplyNode					93.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:204:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:205:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:206:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:216:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:224:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:226:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:245:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:246:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:247:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:253:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:261:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:263:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:278:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:279:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:280:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:286:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:294:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:296:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:318:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:321:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:322:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:328:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:336:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:338:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:353:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:354:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:355:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:361:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:369:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:371:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:384:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:385:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:386:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:392:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:400:				Apply						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:418:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:419:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:420:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:430:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:438:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:440:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:457:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:460:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:461:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:467:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:479:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:481:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:497:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:498:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:499:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:506:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:523:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:525:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:543:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:546:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:547:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:557:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:565:				Apply						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:567:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:584:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:593:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:594:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:595:				SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:596:				Apply						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/fix_helpers.go:598:				ApplyNode					95.2%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:17:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:18:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:19:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:22:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:25:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:28:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:31:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:34:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_not_example.go:39:				Run						81.2%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:18:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:22:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:26:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:30:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:34:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:38:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:42:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:46:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:50:			Run						80.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:89:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:92:			Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:93:			Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:94:			SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:95:			Apply						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:97:			DescribeChange					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/host_trailing_slash.go:104:			ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:17:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:18:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:21:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:24:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:27:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:30:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:33:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_contact.go:37:				Run						83.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:17:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:18:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:19:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:22:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:25:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:28:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:31:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:34:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:38:				Run						81.8%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:71:				Description					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:72:				Interactive					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:73:				Prompts						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:82:				SetInput					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_description.go:90:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:17:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:18:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:21:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:24:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:27:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:30:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:33:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/info_license.go:37:				Run						83.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:17:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:18:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:21:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:24:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:27:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:30:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:33:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/license_url.go:37:				Run						86.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:20:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:24:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:28:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:32:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:36:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:40:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:44:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/link_operation.go:48:				Run						85.2%
github.com/speakeasy-api/openapi/openapi/linter/rules/markdown_descriptions.go:16:			GetFieldValueNode				57.1%
github.com/speakeasy-api/openapi/openapi/linter/rules/markdown_descriptions.go:50:			findFieldValueInNode				87.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:17:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:18:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:19:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:22:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:25:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:28:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:31:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:34:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ambiguous_paths.go:40:				Run						86.4%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:21:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:22:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:23:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:26:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:29:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:32:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:35:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:38:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_eval_markdown.go:42:				Run						90.9%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:17:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:18:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:21:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:24:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:27:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:30:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:33:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_ref_siblings.go:38:				Run						81.8%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:21:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:22:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:23:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:26:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:29:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:32:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:35:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:38:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_script_markdown.go:42:				Run						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:17:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:21:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:25:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:29:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:33:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:37:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:41:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:45:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:64:				checkPathForVerbs				91.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/no_verbs_in_path.go:90:				Run						83.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:19:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:23:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:27:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:31:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:35:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:39:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:43:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:47:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_api_servers.go:51:				Run						89.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:17:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:20:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:23:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:26:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:29:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:32:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:35:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:38:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_example_missing.go:42:			Run						83.8%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:18:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:21:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:24:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:27:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:30:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:33:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:36:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:39:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:43:				Run						80.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:86:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:89:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:90:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:91:				SetInput					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:92:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas3_no_nullable.go:94:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:24:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:28:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:32:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:36:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:40:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:44:				Link						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:48:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:52:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:56:				Run						70.4%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:119:				validateString					90.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:184:				validateNumber					73.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:241:				validateArray					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:331:				validateObject					65.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:433:				validateBoolean					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:437:				validateNull					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:446:				checkTypeMismatchedConstraints			93.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:617:				checkPolymorphicProperty			21.1%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:657:				validateConst					20.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:699:				validateEnumConst				26.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:754:				isConstNodeValidForType				0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:781:				isFloatWhole					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/oas_schema_check.go:800:				validateDiscriminator				19.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:20:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:24:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:28:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:32:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:36:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:40:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:44:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/openapi_tags.go:48:				Run						85.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:17:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:21:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:25:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:29:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:33:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:37:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:41:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:45:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_description.go:49:			Run						88.9%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:17:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:18:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:19:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:22:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:25:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:28:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:31:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:34:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_error_response.go:38:			Run						85.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:17:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:19:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:21:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:25:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:29:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:33:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:37:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:39:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id.go:41:				Run						81.2%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:20:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:24:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:28:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:32:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:36:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:40:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:44:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:48:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_id_valid_in_url.go:52:			Run						82.4%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:17:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:18:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:19:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:22:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:25:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:28:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:31:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:34:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_singular_tag.go:38:			Run						88.9%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:19:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:21:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:23:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:27:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:31:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:35:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:39:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:43:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:45:			Run						96.8%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:113:		getOperationResponsesKeyNode			50.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_success_response.go:137:		findIntegerResponseCodes			85.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:17:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:18:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:19:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:22:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:25:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:28:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:31:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:34:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:38:			Run						91.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:94:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:97:			Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:98:			Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:99:			SetInput					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tag_defined.go:101:			Apply						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:17:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:21:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:25:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:29:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:33:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:37:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:41:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:45:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/operation_tags.go:49:				Run						88.2%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:16:	ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:19:	Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:22:	Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:25:	Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:28:	HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:31:	Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:34:	DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:37:	Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_additional_properties_constrained.go:41:	Run						96.8%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:19:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:22:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:25:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:28:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:31:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:34:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:37:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_array_limit.go:41:				Run						90.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:18:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:19:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:20:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:23:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:26:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:29:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:32:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:35:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_auth_insecure_schemes.go:39:		Run						88.9%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:17:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:18:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:21:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:24:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:27:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:30:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:33:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:36:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_401.go:40:		Run						83.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:17:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:18:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:21:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:24:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:27:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:30:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:33:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:36:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_429.go:40:		Run						83.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:17:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:18:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:21:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:24:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:27:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:30:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:33:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:36:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_responses_500.go:40:		Run						83.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:16:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:17:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:20:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:23:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:26:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:29:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:32:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:35:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_define_error_validation.go:39:		Run						81.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:16:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:19:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:22:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:25:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:28:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:31:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:34:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:37:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_format.go:41:			Run						90.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:16:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:19:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:22:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:25:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:28:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:31:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:34:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:37:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_integer_limit.go:41:			Run						92.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:19:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:22:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:25:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:28:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:31:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:34:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:37:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:40:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:44:			Run						93.1%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:120:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:123:			Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:124:			Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:125:			SetInput					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:126:			Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_jwt_best_practices.go:128:			ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:18:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:21:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:24:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:27:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:30:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:33:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:36:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:39:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:43:		Run						97.1%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:125:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:128:		Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:129:		Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:130:		SetInput					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:131:		Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_additional_properties.go:133:		ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:18:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:19:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:20:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:23:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:26:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:29:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:32:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:35:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_api_keys_in_url.go:39:			Run						88.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:24:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:25:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:26:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:29:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:32:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:35:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:38:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:41:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_credentials_in_url.go:45:		Run						86.4%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:18:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:19:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:20:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:23:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:26:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:29:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:32:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:35:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_http_basic.go:39:			Run						88.9%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:17:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:20:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:23:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:26:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:29:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:32:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:35:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:38:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:43:			isIDParameter					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_no_numeric_ids.go:51:			Run						85.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:24:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:27:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:30:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:33:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:36:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:39:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:42:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:45:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_safe.go:49:		Run						93.1%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:26:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:27:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:30:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:33:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:36:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:39:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:42:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:45:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe.go:49:		Run						93.1%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:17:	ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:20:	Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:23:	Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:26:	Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:29:	HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:32:	Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:35:	DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:38:	Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_protection_global_unsafe_strict.go:42:	Run						92.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:26:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:29:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:32:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:35:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:38:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:41:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:44:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:47:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit.go:51:				Run						89.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:16:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:19:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:22:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:25:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:28:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:31:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:34:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:37:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_rate_limit_retry_after.go:41:		Run						89.2%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:19:		ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:22:		Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:25:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:28:		Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:31:		HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:34:		Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:37:		DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:40:		Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:44:		Run						89.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:94:		Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:95:		Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:96:		Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:97:		SetInput					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:98:		Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:100:		DescribeChange					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_security_hosts_https_oas3.go:107:		ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:19:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:22:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:25:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:28:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:31:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:34:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:37:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_limit.go:41:				Run						91.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:16:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:19:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:22:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:25:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:28:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:31:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:34:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:37:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/owasp_string_restricted.go:41:			Run						91.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:16:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:20:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:24:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:28:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:32:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:36:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:40:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:44:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/parameter_description.go:48:			Run						83.9%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:17:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:18:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:19:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:22:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:25:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:28:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:31:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:34:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_declarations.go:38:				Run						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:18:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:19:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:20:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:23:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:26:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:29:				Link						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:32:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:35:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:41:				Run						89.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:119:				extractParamsFromPath				100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:130:				getPathParameters				90.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:150:				mergeParameters					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_params.go:162:				inferPathParamType				100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:17:					ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:18:					Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:19:					Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:22:					Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:25:					HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:28:					Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:31:					DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:34:					Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_query.go:38:					Run						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:18:			ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:19:			Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:20:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:23:			Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:26:			HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:29:			Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:32:			DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:35:			Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:39:			Run						83.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:73:			Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:77:			Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:78:			Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:79:			SetInput					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:80:			Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:82:			DescribeChange					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/path_trailing_slash.go:89:			ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:18:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:22:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:26:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:30:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:34:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:38:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:42:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:46:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:54:				checkPathKebabCase				84.6%
github.com/speakeasy-api/openapi/openapi/linter/rules/paths_kebab_case.go:79:				Run						84.6%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:16:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:20:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:24:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:28:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:32:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:36:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:40:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:44:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tag_description.go:48:				Run						87.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:20:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:24:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:28:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:32:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:36:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:40:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:44:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:48:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:52:				Run						85.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:105:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:106:				Interactive					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:107:				Prompts						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:108:				SetInput					0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:109:				Apply						0.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:111:				ApplyNode					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/tags_alphabetical.go:124:				getTagName					66.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:20:					ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:21:					Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:22:					Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:25:					Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:28:					HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:31:					Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:34:					DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:37:					Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:41:					Run						89.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:91:					createTypeMismatchError				100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:110:				isNullNode					60.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:121:				formatTypeArray					21.4%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:144:				formatTypeArrayWithNull				18.8%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:171:				isNodeMatchingType				63.6%
github.com/speakeasy-api/openapi/openapi/linter/rules/typed_enum.go:201:				containsType					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:20:				ID						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:21:				Category					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:22:				Description					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:25:				Summary						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:28:				HowToFix					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:31:				Link						100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:34:				DefaultSeverity					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:37:				Versions					100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:42:				Run						80.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:58:				collectReferencedComponentPointers		46.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:182:				extractComponentPointer				73.3%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:216:				checkUnusedComponents				43.5%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:382:				getComponentKeyNode				58.6%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:443:				hasUsageMarkingExtension			85.7%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:459:				createUnusedComponentError			100.0%
github.com/speakeasy-api/openapi/openapi/linter/rules/unused_components.go:487:				getComponentTypeMapNode				50.0%
github.com/speakeasy-api/openapi/openapi/localize.go:121:						Localize					60.0%
github.com/speakeasy-api/openapi/openapi/localize.go:175:						discoverExternalReferences			46.7%
github.com/speakeasy-api/openapi/openapi/localize.go:218:						discoverSchemaReference				87.1%
github.com/speakeasy-api/openapi/openapi/localize.go:292:						discoverGenericReference			4.8%
github.com/speakeasy-api/openapi/openapi/localize.go:396:						generateLocalizedFilenames			100.0%
github.com/speakeasy-api/openapi/openapi/localize.go:448:						generateLocalizedFilenameWithConflictDetection	88.9%
github.com/speakeasy-api/openapi/openapi/localize.go:469:						generatePathBasedFilenameWithConflictDetection	58.1%
github.com/speakeasy-api/openapi/openapi/localize.go:533:						generateCounterBasedFilename			100.0%
github.com/speakeasy-api/openapi/openapi/localize.go:550:						copyExternalFiles				77.8%
github.com/speakeasy-api/openapi/openapi/localize.go:571:						rewriteInternalReferences			66.7%
github.com/speakeasy-api/openapi/openapi/localize.go:593:						rewriteYAMLReferences				77.8%
github.com/speakeasy-api/openapi/openapi/localize.go:634:						rewriteReferenceValue				89.5%
github.com/speakeasy-api/openapi/openapi/localize.go:681:						resolveRelativeReference			75.9%
github.com/speakeasy-api/openapi/openapi/localize.go:747:						rewriteReferencesToLocalized			67.9%
github.com/speakeasy-api/openapi/openapi/localize.go:814:						updateGenericReference				14.3%
github.com/speakeasy-api/openapi/openapi/localize.go:845:						normalizeFilePath				80.0%
github.com/speakeasy-api/openapi/openapi/localize.go:889:						handleLocalizeReference				31.8%
github.com/speakeasy-api/openapi/openapi/marshalling.go:20:						WithSkipValidation				100.0%
github.com/speakeasy-api/openapi/openapi/marshalling.go:28:						Unmarshal					92.9%
github.com/speakeasy-api/openapi/openapi/marshalling.go:55:						Marshal						100.0%
github.com/speakeasy-api/openapi/openapi/marshalling.go:61:						Sync						0.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:48:						GetSchema					100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:56:						GetItemSchema					100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:64:						GetEncoding					100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:72:						GetPrefixEncoding				100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:80:						GetItemEncoding					100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:88:						GetExamples					100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:96:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:104:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:169:						GetExample					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:74:							NewOpenAPI					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:81:							GetOpenAPI					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:89:							GetSelf						100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:97:							GetInfo						100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:105:						GetExternalDocs					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:113:						GetTags						100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:121:						GetServers					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:129:						GetSecurity					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:137:						GetPaths					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:145:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:153:						GetWebhooks					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:161:						GetComponents					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:169:						GetJSONSchemaDialect				100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:179:						GetSchemaRegistry				0.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:195:						GetDocumentBaseURI				0.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:204:						SetSchemaRegistry				0.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:212:						Validate					94.9%
github.com/speakeasy-api/openapi/openapi/openapi.go:286:						validateOperationIDUniqueness			87.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:333:						getOperationIDValueNode				66.7%
github.com/speakeasy-api/openapi/openapi/openapi.go:348:						validateParameterUniqueness			92.3%
github.com/speakeasy-api/openapi/openapi/openapi.go:397:						validateOperationParameterUniqueness		86.4%
github.com/speakeasy-api/openapi/openapi/operation.go:53:						GetOperationID					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:61:						GetSummary					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:69:						GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:77:						GetDeprecated					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:85:						GetTags						100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:93:						GetServers					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:101:						GetSecurity					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:109:						GetParameters					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:117:						GetRequestBody					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:125:						GetResponses					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:133:						GetCallbacks					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:141:						GetExternalDocs					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:149:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:159:						IsDeprecated					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:164:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/optimize.go:76:						Optimize					96.6%
github.com/speakeasy-api/openapi/openapi/optimize.go:236:						collectSchema					92.3%
github.com/speakeasy-api/openapi/openapi/optimize.go:303:						isComplexSchema					91.3%
github.com/speakeasy-api/openapi/openapi/optimize.go:362:						isTopLevelComponentSchema			83.3%
github.com/speakeasy-api/openapi/openapi/optimize.go:383:						buildJSONPointer				100.0%
github.com/speakeasy-api/openapi/openapi/optimize.go:402:						ensureUniqueName				71.4%
github.com/speakeasy-api/openapi/openapi/optimize.go:416:						replaceInlineSchema				81.2%
github.com/speakeasy-api/openapi/openapi/parameter.go:25:						String						100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:79:						GetName						100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:87:						GetIn						100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:95:						GetSchema					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:103:						GetRequired					100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:111:						GetDeprecated					100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:119:						GetAllowEmptyValue				100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:134:						GetStyle					22.2%
github.com/speakeasy-api/openapi/openapi/parameter.go:155:						GetExplode					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:163:						GetContent					100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:171:						GetExample					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:179:						GetExamples					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:187:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:195:						GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:203:						GetAllowReserved				66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:211:						Validate					72.7%
github.com/speakeasy-api/openapi/openapi/paths.go:32:							NewPaths					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:39:							Len						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:47:							All						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:55:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:63:							Validate					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:111:							Is						100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:115:							String						100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:119:							IsStandardMethod				100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:149:							NewPathItem					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:156:							Len						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:164:							GetOperation					83.3%
github.com/speakeasy-api/openapi/openapi/paths.go:178:							Get						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:186:							Put						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:194:							Post						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:202:							Delete						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:210:							Options						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:218:							Head						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:226:							Patch						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:234:							Trace						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:242:							Query						100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:250:							GetAdditionalOperations				100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:258:							GetSummary					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:266:							GetServers					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:274:							GetParameters					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:282:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:290:							GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:298:							Validate					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:42:						NewReferencedPathItemFromRef			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:49:						NewReferencedPathItemFromPathItem		100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:56:						NewReferencedExampleFromRef			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:63:						NewReferencedExampleFromExample			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:70:						NewReferencedParameterFromRef			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:77:						NewReferencedParameterFromParameter		100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:84:						NewReferencedHeaderFromRef			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:91:						NewReferencedHeaderFromHeader			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:98:						NewReferencedRequestBodyFromRef			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:105:						NewReferencedRequestBodyFromRequestBody		100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:112:						NewReferencedResponseFromRef			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:119:						NewReferencedResponseFromResponse		100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:126:						NewReferencedCallbackFromRef			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:133:						NewReferencedCallbackFromCallback		100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:140:						NewReferencedLinkFromRef			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:147:						NewReferencedLinkFromLink			100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:154:						NewReferencedSecuritySchemeFromRef		100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:161:						NewReferencedSecuritySchemeFromSecurityScheme	100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:220:						Resolve						83.3%
github.com/speakeasy-api/openapi/openapi/reference.go:241:						IsReference					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:249:						IsResolved					75.0%
github.com/speakeasy-api/openapi/openapi/reference.go:265:						GetReference					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:274:						GetResolvedObject				100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:284:						GetObject					90.9%
github.com/speakeasy-api/openapi/openapi/reference.go:307:						MustGetObject					66.7%
github.com/speakeasy-api/openapi/openapi/reference.go:321:						GetObjectAny					66.7%
github.com/speakeasy-api/openapi/openapi/reference.go:329:						GetSummary					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:337:						GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:346:						GetRootNode					77.8%
github.com/speakeasy-api/openapi/openapi/reference.go:376:						GetParent					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:392:						GetTopLevelParent				100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:405:						SetParent					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:418:						SetTopLevelParent				100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:426:						Validate					93.8%
github.com/speakeasy-api/openapi/openapi/reference.go:456:						Populate					84.6%
github.com/speakeasy-api/openapi/openapi/reference.go:482:						GetNavigableNode				100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:494:						GetReferenceResolutionInfo			70.0%
github.com/speakeasy-api/openapi/openapi/reference.go:514:						resolve						84.8%
github.com/speakeasy-api/openapi/openapi/reference.go:579:						resolveObjectWithTracking			92.5%
github.com/speakeasy-api/openapi/openapi/reference.go:656:						joinReferenceChain				80.0%
github.com/speakeasy-api/openapi/openapi/reference.go:673:						unmarshaler					75.0%
github.com/speakeasy-api/openapi/openapi/reference.go:695:						ensureMutex					100.0%
github.com/speakeasy-api/openapi/openapi/requests.go:32:						GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/requests.go:40:						GetContent					100.0%
github.com/speakeasy-api/openapi/openapi/requests.go:48:						GetRequired					100.0%
github.com/speakeasy-api/openapi/openapi/requests.go:56:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:30:						NewResponses					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:37:						Len						66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:45:						GetDefault					66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:53:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:60:						Populate					84.0%
github.com/speakeasy-api/openapi/openapi/responses.go:109:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:150:						GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:158:						GetHeaders					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:166:						GetContent					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:174:						GetLinks					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:182:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:190:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/sanitize.go:170:						Sanitize					81.2%
github.com/speakeasy-api/openapi/openapi/sanitize.go:207:						LoadSanitizeConfig				85.7%
github.com/speakeasy-api/openapi/openapi/sanitize.go:222:						LoadSanitizeConfigFromFile			60.0%
github.com/speakeasy-api/openapi/openapi/sanitize.go:234:						determineRemovalAction				86.2%
github.com/speakeasy-api/openapi/openapi/sanitize.go:362:						removeExtensions				90.6%
github.com/speakeasy-api/openapi/openapi/sanitize.go:485:						removeUnknownProperties				37.5%
github.com/speakeasy-api/openapi/openapi/sanitize.go:557:						cleanUnknownPropertiesFromJSONSchema		66.7%
github.com/speakeasy-api/openapi/openapi/sanitize.go:573:						cleanUnknownPropertiesFromModel			85.7%
github.com/speakeasy-api/openapi/openapi/sanitize.go:603:						getCoreModelFromAny				93.8%
github.com/speakeasy-api/openapi/openapi/sanitize.go:643:						getRootNodeFromAny				57.1%
github.com/speakeasy-api/openapi/openapi/sanitize.go:681:						removePropertiesFromNode			87.5%
github.com/speakeasy-api/openapi/openapi/security.go:23:						String						100.0%
github.com/speakeasy-api/openapi/openapi/security.go:39:						String						100.0%
github.com/speakeasy-api/openapi/openapi/security.go:79:						GetType						100.0%
github.com/speakeasy-api/openapi/openapi/security.go:87:						GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:95:						GetName						100.0%
github.com/speakeasy-api/openapi/openapi/security.go:103:						GetIn						100.0%
github.com/speakeasy-api/openapi/openapi/security.go:111:						GetScheme					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:119:						GetBearerFormat					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:127:						GetFlows					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:135:						GetOpenIdConnectUrl				100.0%
github.com/speakeasy-api/openapi/openapi/security.go:143:						GetOAuth2MetadataUrl				100.0%
github.com/speakeasy-api/openapi/openapi/security.go:151:						GetDeprecated					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:159:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:167:						Validate					96.8%
github.com/speakeasy-api/openapi/openapi/security.go:240:						getUnusedFields					90.0%
github.com/speakeasy-api/openapi/openapi/security.go:356:						NewSecurityRequirement				100.0%
github.com/speakeasy-api/openapi/openapi/security.go:362:						Populate					93.8%
github.com/speakeasy-api/openapi/openapi/security.go:397:						Validate					92.9%
github.com/speakeasy-api/openapi/openapi/security.go:467:						GetImplicit					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:475:						GetPassword					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:483:						GetClientCredentials				100.0%
github.com/speakeasy-api/openapi/openapi/security.go:491:						GetAuthorizationCode				100.0%
github.com/speakeasy-api/openapi/openapi/security.go:499:						GetDeviceAuthorization				100.0%
github.com/speakeasy-api/openapi/openapi/security.go:507:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:515:						Validate					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:561:						GetAuthorizationURL				100.0%
github.com/speakeasy-api/openapi/openapi/security.go:569:						GetDeviceAuthorizationURL			100.0%
github.com/speakeasy-api/openapi/openapi/security.go:577:						GetTokenURL					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:585:						GetRefreshURL					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:593:						GetScopes					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:601:						GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/security.go:609:						Validate					81.0%
github.com/speakeasy-api/openapi/openapi/serialization.go:10:						String						100.0%
github.com/speakeasy-api/openapi/openapi/server.go:43:							GetURL						100.0%
github.com/speakeasy-api/openapi/openapi/server.go:51:							GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/server.go:59:							GetName						66.7%
github.com/speakeasy-api/openapi/openapi/server.go:67:							GetVariables					100.0%
github.com/speakeasy-api/openapi/openapi/server.go:75:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/server.go:83:							Validate					90.0%
github.com/speakeasy-api/openapi/openapi/server.go:138:							GetDefault					100.0%
github.com/speakeasy-api/openapi/openapi/server.go:146:							GetEnum						100.0%
github.com/speakeasy-api/openapi/openapi/server.go:154:							GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/server.go:162:							Validate					100.0%
github.com/speakeasy-api/openapi/openapi/server.go:181:							resolveServerVariables				95.7%
github.com/speakeasy-api/openapi/openapi/server.go:222:							formatServerVariableName			100.0%
github.com/speakeasy-api/openapi/openapi/server.go:230:							doubleCurlyBraceHint				100.0%
github.com/speakeasy-api/openapi/openapi/snip.go:74:							Snip						88.2%
github.com/speakeasy-api/openapi/openapi/snip.go:114:							removeOperationByID				77.8%
github.com/speakeasy-api/openapi/openapi/snip.go:139:							removeOperation					76.9%
github.com/speakeasy-api/openapi/openapi/tag.go:40:							GetName						100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:48:							GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:56:							GetExternalDocs					100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:64:							GetSummary					66.7%
github.com/speakeasy-api/openapi/openapi/tag.go:72:							GetParent					100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:80:							GetKind						100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:88:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:96:							Validate					100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:145:							hasCircularParentReference			100.0%
github.com/speakeasy-api/openapi/openapi/tag_kind_registry.go:25:					String						100.0%
github.com/speakeasy-api/openapi/openapi/tag_kind_registry.go:30:					IsRegistered					100.0%
github.com/speakeasy-api/openapi/openapi/tag_kind_registry.go:40:					GetRegisteredTagKinds				100.0%
github.com/speakeasy-api/openapi/openapi/tag_kind_registry.go:56:					GetTagKindDescription				100.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:22:							WithUpgradeSameMinorVersion			100.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:28:							WithUpgradeTargetVersion			100.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:36:							Upgrade						82.1%
github.com/speakeasy-api/openapi/openapi/upgrade.go:89:							upgradeFrom30To31				100.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:103:						upgradeFrom310To312				62.5%
github.com/speakeasy-api/openapi/openapi/upgrade.go:119:						upgradeFrom31To32				83.3%
github.com/speakeasy-api/openapi/openapi/upgrade.go:147:						migrateAdditionalOperations31to32		87.5%
github.com/speakeasy-api/openapi/openapi/upgrade.go:186:						migrateTags31to32				77.8%
github.com/speakeasy-api/openapi/openapi/upgrade.go:210:						migrateTagDisplayName				20.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:239:						migrateTagGroups				86.2%
github.com/speakeasy-api/openapi/openapi/upgrade.go:304:						ensureParentTagExists				80.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:331:						setTagParent					100.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:359:						upgradeSchema30to31				100.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:371:						upgradeExample30to31				100.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:384:						upgradeExclusiveMinMax30to31			100.0%
github.com/speakeasy-api/openapi/openapi/upgrade.go:404:						upgradeNullableSchema30to31			94.4%
github.com/speakeasy-api/openapi/openapi/upgrade.go:436:						createNullSchema				100.0%
github.com/speakeasy-api/openapi/openapi/utils.go:26:							ResolveAllReferences				100.0%
github.com/speakeasy-api/openapi/openapi/utils.go:91:							resolveAny					88.2%
github.com/speakeasy-api/openapi/openapi/utils.go:155:							ExtractMethodAndPath				88.9%
github.com/speakeasy-api/openapi/openapi/utils.go:191:							GetParentType					100.0%
github.com/speakeasy-api/openapi/openapi/walk.go:24:							Walk						75.0%
github.com/speakeasy-api/openapi/openapi/walk.go:34:							walkFrom					28.2%
github.com/speakeasy-api/openapi/openapi/walk.go:119:							walk						85.7%
github.com/speakeasy-api/openapi/openapi/walk.go:166:							walkInfo					86.4%
github.com/speakeasy-api/openapi/openapi/walk.go:214:							walkPaths					100.0%
github.com/speakeasy-api/openapi/openapi/walk.go:236:							walkReferencedPathItem				75.0%
github.com/speakeasy-api/openapi/openapi/walk.go:256:							walkPathItem					71.4%
github.com/speakeasy-api/openapi/openapi/walk.go:292:							walkOperation					70.0%
github.com/speakeasy-api/openapi/openapi/walk.go:343:							walkReferencedParameters			88.9%
github.com/speakeasy-api/openapi/openapi/walk.go:363:							walkReferencedParameter				75.0%
github.com/speakeasy-api/openapi/openapi/walk.go:383:							walkParameter					55.6%
github.com/speakeasy-api/openapi/openapi/walk.go:408:							walkReferencedRequestBody			87.5%
github.com/speakeasy-api/openapi/openapi/walk.go:428:							walkRequestBody					80.0%
github.com/speakeasy-api/openapi/openapi/walk.go:443:							walkResponses					81.8%
github.com/speakeasy-api/openapi/openapi/walk.go:471:							walkReferencedResponse				87.5%
github.com/speakeasy-api/openapi/openapi/walk.go:491:							walkResponse					66.7%
github.com/speakeasy-api/openapi/openapi/walk.go:516:							walkMediaTypes					100.0%
github.com/speakeasy-api/openapi/openapi/walk.go:536:							walkMediaType					61.1%
github.com/speakeasy-api/openapi/openapi/walk.go:582:							walkEncodings					88.9%
github.com/speakeasy-api/openapi/openapi/walk.go:602:							walkPrefixEncodings				88.9%
github.com/speakeasy-api/openapi/openapi/walk.go:622:							walkEncoding					75.0%
github.com/speakeasy-api/openapi/openapi/walk.go:643:							walkReferencedHeaders				88.9%
github.com/speakeasy-api/openapi/openapi/walk.go:663:							walkReferencedHeader				75.0%
github.com/speakeasy-api/openapi/openapi/walk.go:683:							walkHeader					55.6%
github.com/speakeasy-api/openapi/openapi/walk.go:708:							walkReferencedExamples				88.9%
github.com/speakeasy-api/openapi/openapi/walk.go:728:							walkReferencedExample				75.0%
github.com/speakeasy-api/openapi/openapi/walk.go:748:							walkExample					66.7%
github.com/speakeasy-api/openapi/openapi/walk_components.go:12:						walkComponents					69.2%
github.com/speakeasy-api/openapi/openapi/walk_components.go:78:						walkComponentSchemas				100.0%
github.com/speakeasy-api/openapi/openapi/walk_components.go:98:						walkComponentResponses				88.9%
github.com/speakeasy-api/openapi/openapi/walk_components.go:118:					walkComponentParameters				88.9%
github.com/speakeasy-api/openapi/openapi/walk_components.go:138:					walkComponentExamples				88.9%
github.com/speakeasy-api/openapi/openapi/walk_components.go:158:					walkComponentRequestBodies			88.9%
github.com/speakeasy-api/openapi/openapi/walk_components.go:178:					walkComponentHeaders				88.9%
github.com/speakeasy-api/openapi/openapi/walk_components.go:198:					walkComponentSecuritySchemes			100.0%
github.com/speakeasy-api/openapi/openapi/walk_components.go:218:					walkComponentLinks				88.9%
github.com/speakeasy-api/openapi/openapi/walk_components.go:238:					walkComponentCallbacks				88.9%
github.com/speakeasy-api/openapi/openapi/walk_components.go:258:					walkComponentPathItems				88.9%
github.com/speakeasy-api/openapi/openapi/walk_matching.go:152:						getMatchFunc					83.3%
github.com/speakeasy-api/openapi/openapi/walk_schema.go:11:						walkSchema					100.0%
github.com/speakeasy-api/openapi/openapi/walk_schema.go:31:						convertSchemaMatchFunc				100.0%
github.com/speakeasy-api/openapi/openapi/walk_schema.go:45:						convertSchemaLocation				100.0%
github.com/speakeasy-api/openapi/openapi/walk_schema.go:63:						walkExternalDocs				87.5%
github.com/speakeasy-api/openapi/openapi/walk_security.go:10:						walkSecurity					100.0%
github.com/speakeasy-api/openapi/openapi/walk_security.go:30:						walkSecurityRequirement				75.0%
github.com/speakeasy-api/openapi/openapi/walk_security.go:41:						walkReferencedSecurityScheme			75.0%
github.com/speakeasy-api/openapi/openapi/walk_security.go:61:						walkSecurityScheme				80.0%
github.com/speakeasy-api/openapi/openapi/walk_security.go:76:						walkOAuthFlows					71.4%
github.com/speakeasy-api/openapi/openapi/walk_security.go:109:						walkOAuthFlow					83.3%
github.com/speakeasy-api/openapi/openapi/walk_tags_servers.go:10:					walkTags					85.7%
github.com/speakeasy-api/openapi/openapi/walk_tags_servers.go:25:					walkTag						62.5%
github.com/speakeasy-api/openapi/openapi/walk_tags_servers.go:44:					walkServers					100.0%
github.com/speakeasy-api/openapi/openapi/walk_tags_servers.go:59:					walkServer					87.5%
github.com/speakeasy-api/openapi/openapi/walk_tags_servers.go:77:					walkVariables					100.0%
github.com/speakeasy-api/openapi/openapi/walk_tags_servers.go:91:					walkVariable					100.0%
github.com/speakeasy-api/openapi/openapi/walk_webhooks_callbacks.go:11:					walkWebhooks					88.9%
github.com/speakeasy-api/openapi/openapi/walk_webhooks_callbacks.go:31:					walkReferencedLinks				88.9%
github.com/speakeasy-api/openapi/openapi/walk_webhooks_callbacks.go:51:					walkReferencedLink				75.0%
github.com/speakeasy-api/openapi/openapi/walk_webhooks_callbacks.go:71:					walkLink					60.0%
github.com/speakeasy-api/openapi/openapi/walk_webhooks_callbacks.go:86:					walkReferencedCallbacks				88.9%
github.com/speakeasy-api/openapi/openapi/walk_webhooks_callbacks.go:106:				walkReferencedCallback				75.0%
github.com/speakeasy-api/openapi/openapi/walk_webhooks_callbacks.go:126:				walkCallback					66.7%
github.com/speakeasy-api/openapi/oq/expr/expr.go:68:							Eval						75.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:99:							Eval						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:103:							Eval						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:108:							Eval						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:113:							Eval						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:117:							Eval						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:123:							toBool						40.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:136:							equal						57.1%
github.com/speakeasy-api/openapi/oq/expr/expr.go:149:							compare						85.7%
github.com/speakeasy-api/openapi/oq/expr/expr.go:161:							toInt						25.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:178:							toString					40.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:192:							StringVal					100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:197:							IntVal						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:202:							BoolVal						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:207:							NullVal						0.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:214:							Parse						85.7%
github.com/speakeasy-api/openapi/oq/expr/expr.go:231:							peek						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:238:							next						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:244:							expect						100.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:252:							parseOr						90.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:268:							parseAnd					90.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:284:							parseComparison					90.0%
github.com/speakeasy-api/openapi/oq/expr/expr.go:315:							parseUnary					85.7%
github.com/speakeasy-api/openapi/oq/expr/expr.go:327:							parsePrimary					77.1%
github.com/speakeasy-api/openapi/oq/expr/expr.go:409:							tokenize					94.4%
github.com/speakeasy-api/openapi/oq/oq.go:61:								Execute						75.0%
github.com/speakeasy-api/openapi/oq/oq.go:125:								Parse						93.8%
github.com/speakeasy-api/openapi/oq/oq.go:156:								parseStage					84.4%
github.com/speakeasy-api/openapi/oq/oq.go:320:								run						76.9%
github.com/speakeasy-api/openapi/oq/oq.go:349:								execSource					92.9%
github.com/speakeasy-api/openapi/oq/oq.go:378:								execStage					92.7%
github.com/speakeasy-api/openapi/oq/oq.go:459:								execWhere					90.0%
github.com/speakeasy-api/openapi/oq/oq.go:476:								execSort					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:490:								execTake					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:497:								execUnique					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:510:								execGroupBy					91.7%
github.com/speakeasy-api/openapi/oq/oq.go:556:								execTraversal					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:571:								edgeRowKey					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:579:								traverseRefsOut					85.7%
github.com/speakeasy-api/openapi/oq/oq.go:597:								traverseRefsIn					85.7%
github.com/speakeasy-api/openapi/oq/oq.go:615:								traverseReachable				85.7%
github.com/speakeasy-api/openapi/oq/oq.go:627:								traverseAncestors				85.7%
github.com/speakeasy-api/openapi/oq/oq.go:639:								traverseProperties				87.5%
github.com/speakeasy-api/openapi/oq/oq.go:659:								traverseUnionMembers				88.9%
github.com/speakeasy-api/openapi/oq/oq.go:681:								traverseItems					87.5%
github.com/speakeasy-api/openapi/oq/oq.go:704:								resolveRefTarget				66.7%
github.com/speakeasy-api/openapi/oq/oq.go:721:								execSchemasToOps				91.7%
github.com/speakeasy-api/openapi/oq/oq.go:740:								execOpsToSchemas				91.7%
github.com/speakeasy-api/openapi/oq/oq.go:759:								execConnected					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:782:								execBlastRadius					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:821:								execNeighbors					92.3%
github.com/speakeasy-api/openapi/oq/oq.go:845:								execOrphans					87.5%
github.com/speakeasy-api/openapi/oq/oq.go:859:								execLeaves					71.4%
github.com/speakeasy-api/openapi/oq/oq.go:872:								execCycles					40.0%
github.com/speakeasy-api/openapi/oq/oq.go:911:								execClusters					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:981:								execTagBoundary					71.4%
github.com/speakeasy-api/openapi/oq/oq.go:994:								schemaTagCount					87.5%
github.com/speakeasy-api/openapi/oq/oq.go:1009:								execSharedRefs					95.0%
github.com/speakeasy-api/openapi/oq/oq.go:1049:								schemaName					66.7%
github.com/speakeasy-api/openapi/oq/oq.go:1056:								edgeKindString					25.0%
github.com/speakeasy-api/openapi/oq/oq.go:1106:								Field						100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1112:								FieldValuePublic				100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1116:								fieldValue					46.2%
github.com/speakeasy-api/openapi/oq/oq.go:1215:								compareValues					92.3%
github.com/speakeasy-api/openapi/oq/oq.go:1236:								valueToString					80.0%
github.com/speakeasy-api/openapi/oq/oq.go:1249:								rowKey						66.7%
github.com/speakeasy-api/openapi/oq/oq.go:1258:								buildExplain					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1274:								describeStage					19.4%
github.com/speakeasy-api/openapi/oq/oq.go:1349:								execFields					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1411:								execSample					92.3%
github.com/speakeasy-api/openapi/oq/oq.go:1439:								execPath					81.8%
github.com/speakeasy-api/openapi/oq/oq.go:1459:								parseTwoArgs					78.3%
github.com/speakeasy-api/openapi/oq/oq.go:1497:								FormatTable					90.7%
github.com/speakeasy-api/openapi/oq/oq.go:1576:								FormatJSON					85.2%
github.com/speakeasy-api/openapi/oq/oq.go:1623:								FormatMarkdown					88.6%
github.com/speakeasy-api/openapi/oq/oq.go:1685:								FormatToon					83.3%
github.com/speakeasy-api/openapi/oq/oq.go:1732:								formatGroupsToon				100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1745:								toonValue					40.0%
github.com/speakeasy-api/openapi/oq/oq.go:1762:								toonEscape					37.0%
github.com/speakeasy-api/openapi/oq/oq.go:1812:								jsonValue					80.0%
github.com/speakeasy-api/openapi/oq/oq.go:1825:								formatGroups					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1842:								formatGroupsJSON				100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1862:								padRight					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1871:								splitPipeline					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1895:								splitFirst					100.0%
github.com/speakeasy-api/openapi/oq/oq.go:1904:								parseCSV					100.0%
github.com/speakeasy-api/openapi/overlay/apply.go:14:							ApplyTo						88.9%
github.com/speakeasy-api/openapi/overlay/apply.go:36:							ApplyToStrict					96.7%
github.com/speakeasy-api/openapi/overlay/apply.go:90:							validateSelectorHasAtLeastOneTarget		83.3%
github.com/speakeasy-api/openapi/overlay/apply.go:127:							applyRemoveAction				90.0%
github.com/speakeasy-api/openapi/overlay/apply.go:148:							removeNode					91.7%
github.com/speakeasy-api/openapi/overlay/apply.go:180:							applyUpdateAction				87.0%
github.com/speakeasy-api/openapi/overlay/apply.go:227:							applyMerge					72.7%
github.com/speakeasy-api/openapi/overlay/apply.go:277:							mergeNode					100.0%
github.com/speakeasy-api/openapi/overlay/apply.go:302:							mergeMappingNode				100.0%
github.com/speakeasy-api/openapi/overlay/apply.go:335:							nodeKindName					80.0%
github.com/speakeasy-api/openapi/overlay/apply.go:349:							mergeSequenceNode				100.0%
github.com/speakeasy-api/openapi/overlay/apply.go:354:							clone						87.5%
github.com/speakeasy-api/openapi/overlay/apply.go:378:							applyCopyAction					71.4%
github.com/speakeasy-api/openapi/overlay/compare.go:14:							Compare						75.0%
github.com/speakeasy-api/openapi/overlay/compare.go:37:							intPart						100.0%
github.com/speakeasy-api/openapi/overlay/compare.go:43:							keyPart						100.0%
github.com/speakeasy-api/openapi/overlay/compare.go:50:							String						66.7%
github.com/speakeasy-api/openapi/overlay/compare.go:57:							KeyString					0.0%
github.com/speakeasy-api/openapi/overlay/compare.go:66:							WithIndex					100.0%
github.com/speakeasy-api/openapi/overlay/compare.go:70:							WithKey						100.0%
github.com/speakeasy-api/openapi/overlay/compare.go:74:							ToJSONPath					100.0%
github.com/speakeasy-api/openapi/overlay/compare.go:83:							Dir						100.0%
github.com/speakeasy-api/openapi/overlay/compare.go:87:							Base						0.0%
github.com/speakeasy-api/openapi/overlay/compare.go:91:							walkTreesAndCollectActions			88.9%
github.com/speakeasy-api/openapi/overlay/compare.go:156:						yamlEquals					85.7%
github.com/speakeasy-api/openapi/overlay/compare.go:178:						walkSequenceNode				93.8%
github.com/speakeasy-api/openapi/overlay/compare.go:207:						walkMappingNode					92.0%
github.com/speakeasy-api/openapi/overlay/jsonpath.go:22:						Query						75.0%
github.com/speakeasy-api/openapi/overlay/jsonpath.go:35:						NewPath						100.0%
github.com/speakeasy-api/openapi/overlay/jsonpath.go:65:						UsesRFC9535					100.0%
github.com/speakeasy-api/openapi/overlay/jsonpath.go:87:						mustExecute					100.0%
github.com/speakeasy-api/openapi/overlay/loader/overlay.go:12:						LoadOverlay					100.0%
github.com/speakeasy-api/openapi/overlay/loader/overlay.go:22:						LoadOverlayFromReader				0.0%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:21:						GetOverlayExtendsPath				61.1%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:65:						LoadExtendsSpecification			100.0%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:75:						LoadSpecificationFromReader			0.0%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:85:						LoadSpecification				100.0%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:105:						LoadEitherSpecification				100.0%
github.com/speakeasy-api/openapi/overlay/parents.go:8:							newParentIndex					100.0%
github.com/speakeasy-api/openapi/overlay/parents.go:14:							indexNodeRecursively				100.0%
github.com/speakeasy-api/openapi/overlay/parents.go:21:							getParent					100.0%
github.com/speakeasy-api/openapi/overlay/parse.go:13:							ParseReader					0.0%
github.com/speakeasy-api/openapi/overlay/parse.go:28:							Parse						81.8%
github.com/speakeasy-api/openapi/overlay/parse.go:49:							Format						80.0%
github.com/speakeasy-api/openapi/overlay/parse.go:67:							Format						100.0%
github.com/speakeasy-api/openapi/overlay/schema.go:56:							IsV110OrLater					80.0%
github.com/speakeasy-api/openapi/overlay/schema.go:66:							ToString					100.0%
github.com/speakeasy-api/openapi/overlay/upgrade.go:20:							WithUpgradeTargetVersion			100.0%
github.com/speakeasy-api/openapi/overlay/upgrade.go:36:							Upgrade						100.0%
github.com/speakeasy-api/openapi/overlay/upgrade.go:77:							upgradeFrom100To110				77.8%
github.com/speakeasy-api/openapi/overlay/utils.go:9:							NewTargetSelector				100.0%
github.com/speakeasy-api/openapi/overlay/utils.go:13:							NewUpdateAction					100.0%
github.com/speakeasy-api/openapi/overlay/validate.go:32:						Error						100.0%
github.com/speakeasy-api/openapi/overlay/validate.go:40:						Return						100.0%
github.com/speakeasy-api/openapi/overlay/validate.go:47:						ValidateVersion					100.0%
github.com/speakeasy-api/openapi/overlay/validate.go:60:						Validate					100.0%
github.com/speakeasy-api/openapi/pointer/pointer.go:5:							From						100.0%
github.com/speakeasy-api/openapi/pointer/pointer.go:10:							Value						100.0%
github.com/speakeasy-api/openapi/references/factory_registration.go:8:					init						50.0%
github.com/speakeasy-api/openapi/references/reference.go:21:						GetURI						75.0%
github.com/speakeasy-api/openapi/references/reference.go:30:						HasJSONPointer					100.0%
github.com/speakeasy-api/openapi/references/reference.go:34:						GetJSONPointer					100.0%
github.com/speakeasy-api/openapi/references/reference.go:51:						Validate					94.1%
github.com/speakeasy-api/openapi/references/reference.go:97:						IsAnchorReference				72.7%
github.com/speakeasy-api/openapi/references/reference.go:125:						validateComponentReference			100.0%
github.com/speakeasy-api/openapi/references/reference.go:160:						String						100.0%
github.com/speakeasy-api/openapi/references/resolution.go:50:						ResolveAbsoluteReference			100.0%
github.com/speakeasy-api/openapi/references/resolution.go:86:						Resolve						92.7%
github.com/speakeasy-api/openapi/references/resolution.go:215:						resolveAgainstURL				90.0%
github.com/speakeasy-api/openapi/references/resolution.go:236:						resolveAgainstFilePath				100.0%
github.com/speakeasy-api/openapi/references/resolution.go:246:						resolveAgainstDocument				80.0%
github.com/speakeasy-api/openapi/references/resolution.go:266:						resolveAgainstData				71.4%
github.com/speakeasy-api/openapi/references/resolution.go:335:						cast						28.6%
github.com/speakeasy-api/openapi/references/resolution_cache.go:26:					ResolveAbsoluteReferenceCached			100.0%
github.com/speakeasy-api/openapi/references/resolution_cache.go:33:					Resolve						90.0%
github.com/speakeasy-api/openapi/references/resolution_cache.go:64:					resolveAbsoluteReferenceUncached		90.5%
github.com/speakeasy-api/openapi/references/resolution_cache.go:115:					Clear						100.0%
github.com/speakeasy-api/openapi/references/resolution_cache.go:128:					GetStats					100.0%
github.com/speakeasy-api/openapi/references/resolution_cache.go:138:					GetRefCacheStats				100.0%
github.com/speakeasy-api/openapi/references/resolution_cache.go:143:					ClearGlobalRefCache				100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:42:						NewElem						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:50:						GetKey						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:59:						GetValue					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:76:						New						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:81:						NewWithCapacity					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:85:						newMap						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:118:						Init						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:126:						IsInitialized					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:134:						Len						66.7%
github.com/speakeasy-api/openapi/sequencedmap/map.go:142:						Set						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:160:						Add						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:183:						SetAny						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:196:						AddAny						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:209:						GetAny						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:219:						DeleteAny					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:229:						KeysAny						88.9%
github.com/speakeasy-api/openapi/sequencedmap/map.go:253:						SetUntyped					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:272:						Get						85.7%
github.com/speakeasy-api/openapi/sequencedmap/map.go:289:						GetUntyped					90.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:309:						GetOrZero					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:324:						Has						75.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:334:						Delete						85.7%
github.com/speakeasy-api/openapi/sequencedmap/map.go:351:						First						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:360:						Last						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:369:						At						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:383:						All						88.9%
github.com/speakeasy-api/openapi/sequencedmap/map.go:408:						AllOrdered					96.8%
github.com/speakeasy-api/openapi/sequencedmap/map.go:480:						AllUntyped					88.9%
github.com/speakeasy-api/openapi/sequencedmap/map.go:503:						Keys						77.8%
github.com/speakeasy-api/openapi/sequencedmap/map.go:526:						Values						77.8%
github.com/speakeasy-api/openapi/sequencedmap/map.go:548:						GetKeyType					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:554:						GetValueType					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:561:						NavigateWithKey					93.8%
github.com/speakeasy-api/openapi/sequencedmap/map.go:592:						MarshalJSON					76.2%
github.com/speakeasy-api/openapi/sequencedmap/map.go:689:						UnmarshalYAML					89.5%
github.com/speakeasy-api/openapi/sequencedmap/map.go:734:						MarshalYAML					83.3%
github.com/speakeasy-api/openapi/sequencedmap/map.go:756:						compareKeys					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:763:						IsEqual						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:804:						IsEqualFunc					94.7%
github.com/speakeasy-api/openapi/sequencedmap/utils.go:6:						Len						100.0%
github.com/speakeasy-api/openapi/sequencedmap/utils.go:14:						From						100.0%
github.com/speakeasy-api/openapi/swagger/core/factory_registration.go:9:				init						64.1%
github.com/speakeasy-api/openapi/swagger/core/paths.go:18:						NewPaths					100.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:24:						GetMapKeyNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/swagger/core/paths.go:42:						GetMapKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:60:						NewPathItem					100.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:66:						GetMapKeyNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/swagger/core/paths.go:84:						GetMapKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/swagger/core/reference.go:26:						Unmarshal					93.3%
github.com/speakeasy-api/openapi/swagger/core/reference.go:53:						SyncChanges					10.3%
github.com/speakeasy-api/openapi/swagger/core/response.go:21:						NewResponses					100.0%
github.com/speakeasy-api/openapi/swagger/core/response.go:27:						GetMapKeyNodeOrRoot				87.5%
github.com/speakeasy-api/openapi/swagger/core/response.go:45:						GetMapKeyNodeOrRootLine				100.0%
github.com/speakeasy-api/openapi/swagger/core/security.go:30:						NewSecurityRequirement				100.0%
github.com/speakeasy-api/openapi/swagger/externaldocs.go:31:						GetDescription					100.0%
github.com/speakeasy-api/openapi/swagger/externaldocs.go:39:						GetURL						100.0%
github.com/speakeasy-api/openapi/swagger/externaldocs.go:47:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/externaldocs.go:55:						Validate					77.8%
github.com/speakeasy-api/openapi/swagger/factory_registration.go:11:					init						89.5%
github.com/speakeasy-api/openapi/swagger/info.go:40:							GetTitle					100.0%
github.com/speakeasy-api/openapi/swagger/info.go:48:							GetDescription					100.0%
github.com/speakeasy-api/openapi/swagger/info.go:56:							GetTermsOfService				100.0%
github.com/speakeasy-api/openapi/swagger/info.go:64:							GetContact					100.0%
github.com/speakeasy-api/openapi/swagger/info.go:72:							GetLicense					100.0%
github.com/speakeasy-api/openapi/swagger/info.go:80:							GetVersion					66.7%
github.com/speakeasy-api/openapi/swagger/info.go:88:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/info.go:96:							Validate					80.0%
github.com/speakeasy-api/openapi/swagger/info.go:144:							GetName						66.7%
github.com/speakeasy-api/openapi/swagger/info.go:152:							GetURL						66.7%
github.com/speakeasy-api/openapi/swagger/info.go:160:							GetEmail					66.7%
github.com/speakeasy-api/openapi/swagger/info.go:168:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/info.go:176:							Validate					90.0%
github.com/speakeasy-api/openapi/swagger/info.go:212:							GetName						66.7%
github.com/speakeasy-api/openapi/swagger/info.go:220:							GetURL						66.7%
github.com/speakeasy-api/openapi/swagger/info.go:228:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/info.go:236:							Validate					77.8%
github.com/speakeasy-api/openapi/swagger/marshalling.go:20:						WithSkipValidation				100.0%
github.com/speakeasy-api/openapi/swagger/marshalling.go:28:						Unmarshal					92.3%
github.com/speakeasy-api/openapi/swagger/marshalling.go:54:						Marshal						100.0%
github.com/speakeasy-api/openapi/swagger/marshalling.go:60:						Sync						0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:51:						GetTags						100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:59:						GetSummary					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:67:						GetDescription					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:75:						GetExternalDocs					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:83:						GetOperationID					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:91:						GetConsumes					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:99:						GetProduces					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:107:						GetParameters					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:115:						GetResponses					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:123:						GetSchemes					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:131:						GetDeprecated					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:139:						GetSecurity					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:147:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/operation.go:155:						Validate					90.6%
github.com/speakeasy-api/openapi/swagger/parameter.go:112:						GetName						100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:120:						GetIn						100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:128:						GetDescription					100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:136:						GetRequired					100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:144:						GetSchema					100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:152:						GetType						100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:160:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:168:						Validate					92.9%
github.com/speakeasy-api/openapi/swagger/parameter.go:228:						validateIn					100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:246:						validateParameterType				93.8%
github.com/speakeasy-api/openapi/swagger/parameter.go:359:						GetType						100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:367:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:375:						Validate					94.7%
github.com/speakeasy-api/openapi/swagger/paths.go:28:							NewPaths					100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:35:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:43:							Validate					100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:101:							NewPathItem					100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:108:							GetRef						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:116:							GetParameters					100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:124:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:132:							GetOperation					83.3%
github.com/speakeasy-api/openapi/swagger/paths.go:146:							Get						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:151:							Put						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:156:							Post						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:161:							Delete						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:166:							Options						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:171:							Head						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:176:							Patch						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:181:							Validate					100.0%
github.com/speakeasy-api/openapi/swagger/reference.go:24:						NewReferencedParameterFromRef			100.0%
github.com/speakeasy-api/openapi/swagger/reference.go:31:						NewReferencedParameterFromParameter		100.0%
github.com/speakeasy-api/openapi/swagger/reference.go:38:						NewReferencedResponseFromRef			100.0%
github.com/speakeasy-api/openapi/swagger/reference.go:45:						NewReferencedResponseFromResponse		100.0%
github.com/speakeasy-api/openapi/swagger/reference.go:65:						IsReference					66.7%
github.com/speakeasy-api/openapi/swagger/reference.go:73:						GetReference					66.7%
github.com/speakeasy-api/openapi/swagger/reference.go:81:						GetObject					60.0%
github.com/speakeasy-api/openapi/swagger/reference.go:94:						Validate					53.8%
github.com/speakeasy-api/openapi/swagger/reference.go:120:						Populate					72.7%
github.com/speakeasy-api/openapi/swagger/response.go:31:						NewResponses					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:38:						GetDefault					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:46:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:54:						Validate					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:100:						GetDescription					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:108:						GetSchema					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:116:						GetHeaders					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:124:						GetExamples					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:132:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:140:						Validate					87.5%
github.com/speakeasy-api/openapi/swagger/response.go:205:						GetDescription					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:213:						GetType						100.0%
github.com/speakeasy-api/openapi/swagger/response.go:221:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:229:						Validate					94.7%
github.com/speakeasy-api/openapi/swagger/security.go:81:						GetType						100.0%
github.com/speakeasy-api/openapi/swagger/security.go:89:						GetDescription					100.0%
github.com/speakeasy-api/openapi/swagger/security.go:97:						GetName						100.0%
github.com/speakeasy-api/openapi/swagger/security.go:105:						GetIn						100.0%
github.com/speakeasy-api/openapi/swagger/security.go:113:						GetFlow						100.0%
github.com/speakeasy-api/openapi/swagger/security.go:121:						GetAuthorizationURL				100.0%
github.com/speakeasy-api/openapi/swagger/security.go:129:						GetTokenURL					100.0%
github.com/speakeasy-api/openapi/swagger/security.go:137:						GetScopes					100.0%
github.com/speakeasy-api/openapi/swagger/security.go:145:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/security.go:153:						Validate					93.3%
github.com/speakeasy-api/openapi/swagger/security.go:249:						NewSecurityRequirement				100.0%
github.com/speakeasy-api/openapi/swagger/security.go:256:						Validate					88.9%
github.com/speakeasy-api/openapi/swagger/swagger.go:63:							GetSwagger					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:71:							GetInfo						100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:79:							GetHost						100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:87:							GetBasePath					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:95:							GetSchemes					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:103:						GetConsumes					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:111:						GetProduces					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:119:						GetPaths					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:127:						GetDefinitions					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:135:						GetParameters					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:143:						GetResponses					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:151:						GetSecurityDefinitions				100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:159:						GetSecurity					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:167:						GetTags						100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:175:						GetExternalDocs					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:183:						GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:191:						Validate					98.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:314:						validateOperationIDUniqueness			86.7%
github.com/speakeasy-api/openapi/swagger/tag.go:31:							GetName						100.0%
github.com/speakeasy-api/openapi/swagger/tag.go:39:							GetDescription					100.0%
github.com/speakeasy-api/openapi/swagger/tag.go:47:							GetExternalDocs					100.0%
github.com/speakeasy-api/openapi/swagger/tag.go:55:							GetExtensions					100.0%
github.com/speakeasy-api/openapi/swagger/tag.go:63:							Validate					87.5%
github.com/speakeasy-api/openapi/swagger/upgrade.go:35:							Upgrade						93.8%
github.com/speakeasy-api/openapi/swagger/upgrade.go:81:							convertInfo					66.7%
github.com/speakeasy-api/openapi/swagger/upgrade.go:105:						convertInfoContact				100.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:117:						convertInfoLicense				100.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:128:						copyExtensions					40.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:137:						convertExternalDocs				100.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:148:						convertTags					87.5%
github.com/speakeasy-api/openapi/swagger/upgrade.go:167:						buildServers					85.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:202:						ensureLeadingSlash				60.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:212:						convertDefinitions				87.5%
github.com/speakeasy-api/openapi/swagger/upgrade.go:226:						convertSecuritySchemes				70.4%
github.com/speakeasy-api/openapi/swagger/upgrade.go:273:						convertOAuth2Flows				81.8%
github.com/speakeasy-api/openapi/swagger/upgrade.go:313:						cloneStringMap					83.3%
github.com/speakeasy-api/openapi/swagger/upgrade.go:324:						convertSecurityRequirements			90.9%
github.com/speakeasy-api/openapi/swagger/upgrade.go:342:						convertPaths					84.6%
github.com/speakeasy-api/openapi/swagger/upgrade.go:366:						convertPathItem					46.2%
github.com/speakeasy-api/openapi/swagger/upgrade.go:415:						convertOperation				87.3%
github.com/speakeasy-api/openapi/swagger/upgrade.go:581:						anyRequired					100.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:590:						schemaForSwaggerParamType			84.8%
github.com/speakeasy-api/openapi/swagger/upgrade.go:655:						convertParameter				60.7%
github.com/speakeasy-api/openapi/swagger/upgrade.go:717:						convertReferencedResponse			80.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:763:						exampleForMediaType				50.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:780:						convertResponseHeaders				64.7%
github.com/speakeasy-api/openapi/swagger/upgrade.go:820:						convertGlobalParameters				90.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:838:						convertGlobalRequestBodies			90.5%
github.com/speakeasy-api/openapi/swagger/upgrade.go:876:						convertGlobalResponses				100.0%
github.com/speakeasy-api/openapi/swagger/upgrade.go:892:						localComponentName				71.4%
github.com/speakeasy-api/openapi/swagger/upgrade.go:904:						rewriteRefTargets				92.3%
github.com/speakeasy-api/openapi/swagger/walk.go:24:							Walk						75.0%
github.com/speakeasy-api/openapi/swagger/walk.go:34:							walkFrom					9.1%
github.com/speakeasy-api/openapi/swagger/walk.go:81:							walk						78.3%
github.com/speakeasy-api/openapi/swagger/walk.go:132:							walkInfo					86.4%
github.com/speakeasy-api/openapi/swagger/walk.go:179:							walkExternalDocs				83.3%
github.com/speakeasy-api/openapi/swagger/walk.go:194:							walkTags					77.8%
github.com/speakeasy-api/openapi/swagger/walk.go:213:							walkTag						62.5%
github.com/speakeasy-api/openapi/swagger/walk.go:234:							walkPaths					88.9%
github.com/speakeasy-api/openapi/swagger/walk.go:256:							walkPathItem					81.8%
github.com/speakeasy-api/openapi/swagger/walk.go:284:							walkOperation					78.6%
github.com/speakeasy-api/openapi/swagger/walk.go:320:							walkReferencedParameters			100.0%
github.com/speakeasy-api/openapi/swagger/walk.go:340:							walkReferencedParameter				62.5%
github.com/speakeasy-api/openapi/swagger/walk.go:360:							walkParameter					70.0%
github.com/speakeasy-api/openapi/swagger/walk.go:386:							walkItems					87.5%
github.com/speakeasy-api/openapi/swagger/walk.go:407:							walkOperationResponses				81.8%
github.com/speakeasy-api/openapi/swagger/walk.go:435:							walkReferencedResponse				75.0%
github.com/speakeasy-api/openapi/swagger/walk.go:455:							walkResponse					80.0%
github.com/speakeasy-api/openapi/swagger/walk.go:481:							walkHeaders					100.0%
github.com/speakeasy-api/openapi/swagger/walk.go:501:							walkHeader					75.0%
github.com/speakeasy-api/openapi/swagger/walk.go:522:							walkDefinitions					77.8%
github.com/speakeasy-api/openapi/swagger/walk.go:542:							walkSchemaConcrete				66.7%
github.com/speakeasy-api/openapi/swagger/walk.go:559:							walkSchemaReferenceable				87.5%
github.com/speakeasy-api/openapi/swagger/walk.go:581:							walkParameters					77.8%
github.com/speakeasy-api/openapi/swagger/walk.go:601:							walkGlobalResponses				88.9%
github.com/speakeasy-api/openapi/swagger/walk.go:621:							walkSecurityDefinitions				77.8%
github.com/speakeasy-api/openapi/swagger/walk.go:641:							walkSecurityScheme				66.7%
github.com/speakeasy-api/openapi/swagger/walk.go:657:							walkSecurity					100.0%
github.com/speakeasy-api/openapi/swagger/walk.go:677:							walkSecurityRequirement				75.0%
github.com/speakeasy-api/openapi/swagger/walk_matching.go:122:						getMatchFunc					83.3%
github.com/speakeasy-api/openapi/system/filesystem.go:25:						Open						100.0%
github.com/speakeasy-api/openapi/system/filesystem.go:29:						WriteFile					75.0%
github.com/speakeasy-api/openapi/system/filesystem.go:38:						MkdirAll					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:17:						String						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:25:						Rank						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:53:						Error						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:61:						Unwrap						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:65:						GetNode						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:69:						GetLineNumber					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:76:						GetColumnNumber					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:83:						GetSeverity					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:88:						GetDocumentLocation				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:112:						NewValidationError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:122:						NewValidationErrorWithDocumentLocation		100.0%
github.com/speakeasy-api/openapi/validation/errors.go:136:						NewValueError					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:158:						NewSliceError					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:180:						NewMapKeyError					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:202:						NewMapValueError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:231:						NewTypeMismatchError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:242:						Error						100.0%
github.com/speakeasy-api/openapi/validation/options.go:13:						WithContextObject				100.0%
github.com/speakeasy-api/openapi/validation/options.go:22:						NewOptions					100.0%
github.com/speakeasy-api/openapi/validation/options.go:30:						GetContextObject				100.0%
github.com/speakeasy-api/openapi/validation/rules.go:124:						RuleInfoForID					100.0%
github.com/speakeasy-api/openapi/validation/rules.go:129:						RuleSummary					100.0%
github.com/speakeasy-api/openapi/validation/rules.go:133:						RuleDescription					100.0%
github.com/speakeasy-api/openapi/validation/rules.go:137:						RuleHowToFix					100.0%
github.com/speakeasy-api/openapi/validation/utils.go:10:						SortValidationErrors				100.0%
github.com/speakeasy-api/openapi/validation/utils.go:50:						compareValidationErrors				73.1%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:28:						Unmarshal					71.4%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:110:					isParentError					75.0%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:122:					hasTypeMismatchErrors				87.5%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:142:					filterChildErrors				80.0%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:153:					SyncChanges					91.9%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:224:					GetNavigableNode				100.0%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:231:					getUnwrappedErrors				85.7%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:244:					typeToName					57.1%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:263:					getWorstSeverityAndRule				86.7%
github.com/speakeasy-api/openapi/values/eithervalue.go:29:						IsLeft						100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:40:						GetLeft						100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:52:						LeftValue					100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:63:						IsRight						100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:74:						GetRight					100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:86:						RightValue					100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:96:						PopulateWithContext				69.2%
github.com/speakeasy-api/openapi/values/eithervalue.go:127:						GetNavigableNode				100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:140:						IsEqual						100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:163:						equalWithIsEqualMethod				72.2%
github.com/speakeasy-api/openapi/values/eithervalue.go:203:						isEmptyCollection				81.8%
github.com/speakeasy-api/openapi/walk/locations.go:30:							ToJSONPointer					100.0%
github.com/speakeasy-api/openapi/walk/locations.go:61:							IsParent					100.0%
github.com/speakeasy-api/openapi/walk/locations.go:79:							ParentKey					100.0%
github.com/speakeasy-api/openapi/walk/set.go:16:							SetAtLocation					91.7%
github.com/speakeasy-api/openapi/walk/set.go:39:							setAtMap					100.0%
github.com/speakeasy-api/openapi/walk/set.go:49:							setAtSlice					100.0%
github.com/speakeasy-api/openapi/walk/set.go:59:							setAtStruct					88.9%
github.com/speakeasy-api/openapi/walk/set.go:82:							setAtField					83.6%
github.com/speakeasy-api/openapi/walk/set.go:190:							setAtSequencedMap				75.0%
github.com/speakeasy-api/openapi/yml/config.go:13:							String						0.0%
github.com/speakeasy-api/openapi/yml/config.go:33:							ToIndent					100.0%
github.com/speakeasy-api/openapi/yml/config.go:62:							GetDefaultConfig				100.0%
github.com/speakeasy-api/openapi/yml/config.go:66:							ContextWithConfig				100.0%
github.com/speakeasy-api/openapi/yml/config.go:74:							GetConfigFromContext				77.8%
github.com/speakeasy-api/openapi/yml/config.go:90:							GetConfigFromDoc				100.0%
github.com/speakeasy-api/openapi/yml/config.go:108:							inspectData					92.7%
github.com/speakeasy-api/openapi/yml/config.go:189:							getGlobalStringStyle				92.3%
github.com/speakeasy-api/openapi/yml/config.go:246:							looksLikeNumber					75.0%
github.com/speakeasy-api/openapi/yml/config.go:258:							mostCommonStyle					92.3%
github.com/speakeasy-api/openapi/yml/nodekind.go:8:							NodeKindToString				100.0%
github.com/speakeasy-api/openapi/yml/walk.go:21:							Walk						100.0%
github.com/speakeasy-api/openapi/yml/walk.go:33:							walkNode					100.0%
github.com/speakeasy-api/openapi/yml/walk.go:56:							walkDocumentNode				75.0%
github.com/speakeasy-api/openapi/yml/walk.go:66:							walkMappingNode					87.5%
github.com/speakeasy-api/openapi/yml/walk.go:83:							walkSequenceNode				75.0%
github.com/speakeasy-api/openapi/yml/walk.go:93:							walkAliasNode					100.0%
github.com/speakeasy-api/openapi/yml/yml.go:11:								CreateOrUpdateKeyNode				87.5%
github.com/speakeasy-api/openapi/yml/yml.go:32:								CreateOrUpdateScalarNode			91.7%
github.com/speakeasy-api/openapi/yml/yml.go:55:								CreateOrUpdateMapNodeElement			85.7%
github.com/speakeasy-api/openapi/yml/yml.go:85:								CreateStringNode				100.0%
github.com/speakeasy-api/openapi/yml/yml.go:93:								CreateIntNode					100.0%
github.com/speakeasy-api/openapi/yml/yml.go:101:							CreateFloatNode					100.0%
github.com/speakeasy-api/openapi/yml/yml.go:109:							CreateBoolNode					100.0%
github.com/speakeasy-api/openapi/yml/yml.go:117:							CreateMapNode					100.0%
github.com/speakeasy-api/openapi/yml/yml.go:125:							DeleteMapNodeElement				90.0%
github.com/speakeasy-api/openapi/yml/yml.go:145:							CreateOrUpdateSliceNode				100.0%
github.com/speakeasy-api/openapi/yml/yml.go:159:							GetMapElementNodes				91.7%
github.com/speakeasy-api/openapi/yml/yml.go:184:							ResolveAlias					100.0%
github.com/speakeasy-api/openapi/yml/yml.go:198:							IsMergeKey					100.0%
github.com/speakeasy-api/openapi/yml/yml.go:206:							ResolveMergeKeys				100.0%
github.com/speakeasy-api/openapi/yml/yml.go:211:							resolveKeyValue					75.0%
github.com/speakeasy-api/openapi/yml/yml.go:219:							resolveMergeKeys				93.5%
github.com/speakeasy-api/openapi/yml/yml.go:280:							collectMergedPairs				94.4%
github.com/speakeasy-api/openapi/yml/yml.go:318:							EqualNodes					86.4%
github.com/speakeasy-api/openapi/yml/yml.go:365:							TypeToYamlTags					100.0%
github.com/speakeasy-api/openapi/yml/yml.go:402:							NodeTagToString					100.0%
total:													(statements)					82.7%
  • 🧪 All tests passed
  • 📈 Full coverage report available in workflow artifacts

Generated by GitHub Actions

vishalg0wda and others added 2 commits March 12, 2026 08:17
New stages: explain, fields, head (alias), sample, path, top, bottom, format
New operation fields: tag, parameter_count, deprecated, description, summary
New graph method: ShortestPath for BFS pathfinding
New formatter: FormatMarkdown for markdown table output
Restore replace directive in cmd/openapi/go.mod (required for CI)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

@codecov
Copy link

codecov bot commented Mar 12, 2026

Codecov Report

❌ Patch coverage is 69.30233% with 594 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
oq/oq.go 74.10% 257 Missing and 61 partials ⚠️
graph/graph.go 54.12% 171 Missing and 35 partials ⚠️
oq/expr/expr.go 72.86% 53 Missing and 17 partials ⚠️

📢 Thoughts on this report? Let us know!

- Fix stdinOrFileArgs(2,2) -> (1,2) so -f flag works with 1 positional arg
- Fix OOB panic in expr tokenizer on unterminated backslash-terminated strings
- Add tests for refs-out, refs-in, items, format groups, field coverage,
  empty/count edge cases bringing oq coverage from 72% to 83%

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

vishalg0wda and others added 2 commits March 12, 2026 08:53
Implement FormatToon following the TOON (Token-Oriented Object Notation)
spec: tabular array syntax with header[N]{fields}: and comma-delimited
data rows. Includes proper string escaping per TOON quoting rules.

See https://github.com/toon-format/toon

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…panic

Add `openapi spec query-reference` subcommand that prints the complete
oq language reference. Add README.md for the oq package. Fix OOB panic
in expr parser's expect() method when tokens are exhausted mid-parse.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

Edge annotations: 1-hop traversal stages (refs-out, refs-in, properties,
union-members, items) now populate edge_kind, edge_label, and edge_from
fields on result rows, making relationship types visible in query output.

New traversal stages: connected, blast-radius, neighbors <n>
New analysis stages: orphans, leaves, cycles, clusters, tag-boundary, shared-refs
New schema fields: op_count, tag_count

Graph layer additions: Neighbors (depth-limited bidirectional BFS),
StronglyConnectedComponents (Tarjan's SCC), SchemaOpCount.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

Change `openapi spec query <file> <query>` to
`openapi spec query <query> [file]`. The query is the primary argument;
the input file is optional and defaults to stdin when omitted.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Member

@TristanSpeakEasy TristanSpeakEasy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — well-structured, well-tested addition (135 tests pass). Clean pipeline language design with good composability. A few items flagged inline.

Meta: explain, fields, format <table|json|markdown|toon>

Where expressions support: ==, !=, >, <, >=, <=, and, or, not, has(), matches`,
Args: stdinOrFileArgs(1, 2),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: stdinOrFileArgs(1, 2) requires at least 1 positional arg, but when using -f to read the query from a file, there may be 0 positional args (e.g. openapi spec query -f query.oq reading spec from stdin). This will fail Cobra arg validation before runQuery even runs. The minimum should be 0 when -f is used, or use a custom args validator that accounts for the flag.

oq/oq.go Outdated
}
return cmp < 0
})
return result, nil
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug risk: execSort sorts result.Rows in-place and returns the same *Result. Other stages (execWhere, execUnique, execGroupBy) create a new *Result. This inconsistency means callers holding a reference to the pre-sort result see it mutated. Same applies to execTake (line 492) which truncates the slice in-place. Consider creating a new *Result with a sorted/sliced copy of Rows for consistency.

graph/graph.go Outdated
// Detect circular nodes
circularNodes := make(map[NodeID]bool)
for i := range g.Schemas {
visited := make(map[NodeID]bool)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perf: This allocates fresh visited and inStack maps for every schema node, giving O(V × (V+E)) worst case. The visited map should be shared across loop iterations — once a node is fully explored (popped from the recursion stack), it never needs re-exploration. A single shared visited map brings this down to the expected O(V+E) for DFS-based cycle detection.

oq/oq.go Outdated
}

// Add schema rows
for idx := range seenSchemas {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Iterating seenSchemas (a map) produces nondeterministic row ordering — repeated runs of the same query can yield different output. Consider sorting by SchemaIdx or collecting into a sorted slice. Same issue applies to the operation map iteration on lines 809-816, execSharedRefs (line 1041), and execClusters (line 926 iterating resultNodes).

@@ -0,0 +1,1914 @@
// Package oq implements a pipeline query language for OpenAPI schema graphs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This file is ~1,900 lines containing the parser, executor, all stage implementations, field resolution, and four output formatters. Consider splitting into separate files for navigability:

  • parse.goParse, parseStage, splitPipeline, splitFirst, parseCSV, parseTwoArgs
  • exec.gorun, execSource, execStage, and all exec* functions
  • format.goFormatTable, FormatJSON, FormatMarkdown, FormatToon and helpers
  • field.gofieldValue, FieldValuePublic, compareValues, valueToString, rowAdapter

oq/oq.go Outdated
}
items := make([]keyed, len(result.Rows))
for i, row := range result.Rows {
h := sha256.Sum256([]byte(rowKey(row)))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Using sha256.Sum256 per row for a deterministic shuffle is expensive for large result sets. A seeded math/rand PRNG with Fisher-Yates shuffle using a fixed seed (e.g. derived from row count) would be simpler and faster while remaining deterministic.

oq/expr/expr.go Outdated
Str string
Int int
Bool bool
isNull bool
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cleanup: The isNull field is redundant with Kind == KindNull. It's always set alongside Kind: KindNull (see NullVal() on line 208) and only checked in hasExpr.Eval (line 106). Since isNull is unexported, external code can't use it — consider removing it and checking v.Kind == KindNull instead to reduce confusion about the canonical null check.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — removed the isNull bool field from Value and replaced all v.isNull checks with v.Kind == KindNull. NullVal() now just sets Kind: KindNull.

devin-ai-integration[bot]

This comment was marked as resolved.

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

View 14 additional findings in Devin Review.

Open in Devin Review

Comment on lines +636 to +639
if g.detectCycle(edge.To, visited, inStack, circular) {
circular[id] = true
found = true
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 detectCycle marks non-cycle ancestor nodes as circular

The detectCycle function at graph/graph.go:636-638 propagates circular[id] = true to every ancestor of a cycle, not just nodes that are actually part of a cycle. For example, given edges A → B → C → B, node A is NOT in the cycle (only B and C are), yet detectCycle(A) returns true from its child B, causing circular[A] = true to be set. This means SchemaNode.IsCircular will incorrectly report true for any schema that can reach a cycle, making the is_circular field and where is_circular queries produce false positives.

Trace of the bug

For graph A → B → C → B:

  1. detectCycle(A) sets inStack[A]=true, recurses to B
  2. detectCycle(B) sets inStack[B]=true, recurses to C
  3. detectCycle(C) sets inStack[C]=true, recurses to B
  4. detectCycle(B) finds inStack[B]=true → sets circular[B]=true, returns true
  5. Back in C: circular[C]=true (correct), returns true
  6. Back in B: circular[B]=true (already set), returns true
  7. Back in A: circular[A]=true ← WRONG, A is not in the cycle

The fix should use the already-implemented StronglyConnectedComponents() (Tarjan's algorithm at line 770) to identify cycle membership, or modify the DFS to only mark nodes while backtracking within the cycle boundary.

Prompt for agents
In graph/graph.go, replace the detectCycle-based circular detection in computeMetrics() (lines 570-581) with SCC-based detection. The StronglyConnectedComponents() method at line 770 already correctly identifies cycle members using Tarjan's algorithm. Replace:

  circularNodes := make(map[NodeID]bool)
  visited := make(map[NodeID]bool)
  inStack := make(map[NodeID]bool)
  for i := range g.Schemas {
    nid := NodeID(i)
    if !visited[nid] {
      if g.detectCycle(nid, visited, inStack, circularNodes) {
        circularNodes[nid] = true
      }
    }
  }

With:

  circularNodes := make(map[NodeID]bool)
  for _, scc := range g.StronglyConnectedComponents() {
    for _, id := range scc {
      circularNodes[id] = true
    }
  }
  // Also detect self-loops (SCCs of size 1 with a self-edge)
  for i := range g.Schemas {
    nid := NodeID(i)
    for _, edge := range g.outEdges[nid] {
      if edge.To == nid {
        circularNodes[nid] = true
      }
    }
  }

The detectCycle method can then be removed as it is no longer called.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

}

if result.IsCount {
return "count: " + strconv.Itoa(result.Count) + "\n"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 FormatToon count output includes trailing newline causing double newline from caller

FormatToon at oq/format.go:208 returns the count string with a trailing \n: "count: " + strconv.Itoa(result.Count) + "\n". However, the caller in cmd/openapi/commands/openapi/query.go:162-165 writes the output with fmt.Fprint and then adds another newline via fmt.Fprintln when result.IsCount is true. This produces a double newline (count: 42\n\n) for TOON format only. The other format functions (FormatTable, FormatJSON, FormatMarkdown) return count without a trailing newline, so they are correct.

Suggested change
return "count: " + strconv.Itoa(result.Count) + "\n"
return "count: " + strconv.Itoa(result.Count)
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

View 15 additional findings in Devin Review.

Open in Devin Review

}

// Walk responses
for _, resp := range op.Responses.All() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Nil pointer dereference when op.Responses map is nil and has no Default

In graph/graph.go:518, the code calls op.Responses.All() which is safe because the embedded *sequencedmap.Map's All() handles nil. However at line 533, op.Responses.Default is accessed without first checking if op.Responses itself was properly initialized. More critically, if the OpenAPI spec has an operation with no responses block at all, the Responses struct will be zero-valued with a nil embedded *sequencedmap.Map, and while All() is nil-safe, subsequent code at line 518 iterates op.Responses.All() which returns (string, *ReferencedResponse) pairs — but in practice this path is safe. The actual risk is minimal here since the nil checks inside are sufficient. I'm not reporting this as a bug.

However, looking more carefully at findOperationSchemas at graph/graph.go:477-544: the function walks op.Parameters where each parameter is *ReferencedParameter. The GetObject() call at line 497 may return a Parameter whose Schema field is a *oas3.JSONSchemaReferenceable that isn't registered in ptrToNode (e.g. inline parameter schemas from $ref parameters). This is a functional limitation but not a crash bug.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.


result, err := oq.Execute("schemas.components | select name", g)
require.NoError(t, err)
assert.NotEmpty(t, result.Rows)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Missing descriptive messages on test assertions violates AGENTS.md rule

AGENTS.md mandates: "Always include descriptive error messages" on assertions. Numerous assertions across the test files (oq/oq_test.go, graph/graph_test.go, oq/expr/expr_test.go) lack descriptive messages. For example, assert.NotEmpty(t, result.Rows) at oq/oq_test.go:115 and many others throughout the test files. This is a pervasive pattern throughout all test files in the PR — nearly every assertion is missing a descriptive message string.

Prompt for agents
Add descriptive error messages to all assertions in oq/oq_test.go, graph/graph_test.go, and oq/expr/expr_test.go. Per AGENTS.md: 'Always include descriptive error messages'. For example, change assert.NotEmpty(t, result.Rows) to assert.NotEmpty(t, result.Rows, "result should contain rows"). Apply this pattern to every assert.* and require.* call across all three test files.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants