Skip to content

Conversation

@BlakeTheAwesome
Copy link
Contributor

@BlakeTheAwesome BlakeTheAwesome commented Sep 26, 2025

OpenAPI 3.2.0 Support

This PR implements complete support for OpenAPI Specification v3.2.0 (spec.openapis.org/oas/v3.2.0.html), maintaining full backward compatibility with OpenAPI 3.0.x and 3.1.x.

Overview

OpenAPI 3.2 introduces significant new functionality while ensuring that all existing 3.1 documents remain valid. The specification adds support for:

  • Advanced HTTP methods and custom operations
  • Hierarchical tag organization
  • Enhanced security schemes with device authorization
  • Sequential/streaming data support
  • Improved multipart encoding
  • Discriminator fallback handling
  • Structured examples with data/serialization separation
  • Document identity and metadata

Implementation Summary

1. Path Item Enhancements

QUERY Method Support

  • Added native query operation field to PathItem for complex filtering with request bodies
  • Enables HTTP QUERY method as standardized in RFC 9535

Custom HTTP Methods

  • Added additionalOperations map field allowing arbitrary HTTP methods beyond the standard set
  • Updated Walk API to traverse additional operations
  • Enhanced bundling/inlining to handle custom operations with references
  • Test coverage: walk_test.go, bundle_test.go

Enhanced Parameter Locations

  • Added querystring as valid parameter location in Parameter
  • Enables parameters encoded as URL query string separately from path parameters

2. Tag System Overhaul

Hierarchical Organization

  • Added parent field to Tag enabling tag hierarchies
  • Added summary field for concise tag descriptions
  • Added kind field with registry-backed classification (nav, badge, audience)
  • Implemented TagKindRegistry for extensible tag kinds
  • Validation prevents circular parent references

Migration from Extensions

  • Native summary replaces vendor extension x-displayName
  • Automatic conversion from x-tagGroups to hierarchical parent relationships via Upgrade

3. Media Type Enhancements

Sequential/Streaming Data Support

  • Added itemSchema field to MediaType for describing items in sequences
  • Supports Server-Sent Events (text/event-stream)
  • Supports JSON streaming formats (application/jsonl, application/json-seq)

Advanced Multipart Encoding

  • Added itemEncoding field for encoding multiple array items in multipart requests
  • Added prefixEncoding array for positional encoding rules
  • Validation ensures encoding, itemEncoding, and prefixEncoding are mutually exclusive
  • Comprehensive validation tests in mediatype_multipart_validate_test.go

4. Security Scheme Enhancements

OAuth2 Device Authorization Flow

  • Added deviceAuthorization flow to OAuthFlows
  • Added deviceAuthorizationUrl field to OAuthFlow
  • Enables OAuth 2.0 Device Authorization Grant (RFC 8628) for limited-input devices

Enhanced Metadata

  • Added oauth2MetadataUrl field to SecurityScheme
  • Points to OAuth 2.0 Authorization Server Metadata (RFC 8414)

Deprecation Support

  • Added deprecated field to SecurityScheme
  • Marks security schemes as deprecated with proper validation

URI-based References

  • Support for $ref in security scheme objects
  • Validation ensures mutual exclusivity with other security scheme properties

5. Discriminator Improvements

Default Mapping

  • Added defaultMapping field to Discriminator
  • Provides fallback schema when discriminator property is missing or unmapped
  • Prevents validation failures for payloads without discriminator values
  • Version-aware validation ensures 3.2+ requirement

6. Example Object Enhancements

Structured Data Separation

  • Added dataValue field to Example for schema-conformant data
  • Added serializedValue field for HTTP message representation
  • Deprecated value field (retained for backward compatibility)
  • Validation ensures only one value field is set

7. Server Object Enhancements

Server Identification

  • Added name field to Server for human-readable server names
  • Improves multi-environment API documentation

8. Document Identity

Self-Reference Support

  • Added $self field to OpenAPI root object
  • Provides explicit base URI for resolving relative references
  • Updated reference resolution in reference.go to use $self when present
  • Follows RFC 3986 URI reference format

9. Version Management

Improved Version Handling

  • Created dedicated internal/version package
  • Replaced ad-hoc version comparison with structured version parsing
  • Added MinimumSupportedVersion() and MaximumSupportedVersion() helpers
  • Updated version constants to OpenAPI 3.2.0

10. Validation Framework

JSON Schema Dialect Updates

  • Added OpenAPI 3.2 dialect support: schema32.dialect.json
  • Added OpenAPI 3.2 meta-schema: schema32.meta.json
  • Enhanced validation for version-specific features
  • All new fields include comprehensive validation tests

11. Upgrade Path

Automated Migration

  • Enhanced Upgrade function to convert 3.0.x/3.1.x → 3.2.0
  • Automatic conversion of x-tagGroups vendor extension to native tag hierarchies
  • Migration of deprecated fields to new equivalents
  • Preserves all functionality while adopting native 3.2 features
  • Extensive upgrade tests in upgrade_test.go

Testing

Comprehensive Test Coverage

  • 96 files changed across the implementation
  • Added 5,239 lines (net +4,686 after deletions)
  • New test files for all major features:
    • Tag validation and unmarshalling
    • Security scheme validation
    • Media type encoding validation
    • Discriminator version-specific tests
    • Example value validation
    • Path parameter location tests
    • Walk API with additional operations

All tests pass with mise test

Migration Guide

Simple Version Update

For documents already using OpenAPI 3.1, updating is straightforward:

# Before
openapi: 3.1.0

# After
openapi: 3.2.0

Adopting New Features

All new features are optional and can be adopted incrementally:

Replace vendor extensions:

# Before (3.1)
tags:
  - name: Users
    x-displayName: User Management

# After (3.2)
tags:
  - name: Users
    summary: User Management

Add streaming support:

# New in 3.2
content:
  application/jsonl:
    itemSchema:
      $ref: '#/components/schemas/Event'

Use device authorization flow:

# New in 3.2
components:
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        deviceAuthorization:
          deviceAuthorizationUrl: https://auth.example.com/device
          tokenUrl: https://auth.example.com/token
          scopes:
            read: Read access

Breaking Changes

None - OpenAPI 3.2 maintains full backward compatibility with 3.1. All existing 3.1 documents remain valid 3.2 documents after version number update.

Implementation Checklist

  • Support OpenAPI version 3.2.0
  • Add $self field to OpenAPI Object
  • Update reference resolution to use $self as base URI
  • Add query operation method to Path Item Object
  • Add additionalOperations map to Path Item Object
  • Update Walk API to traverse additional operations
  • Update bundling/inlining for additional operations
  • Add migration path for non-standard HTTP methods
  • Add summary, parent, and kind fields to Tag Object
  • Add tag hierarchy validation (circular reference prevention)
  • Add migration for x-displayNamesummary
  • Add migration for x-tagGroups → parent relationships
  • Add in: "querystring" parameter support
  • Add itemSchema field to Media Type Object
  • Add itemEncoding and prefixEncoding fields to Media Type Object
  • Add encoding field mutual exclusivity validation
  • Add deviceAuthorization flow to OAuth Flows Object
  • Add oauth2MetadataUrl to Security Scheme Object
  • Add deprecated field to Security Scheme Object
  • Add defaultMapping to Discriminator Object
  • Add dataValue and serializedValue to Example Object
  • Deprecate value field in Example Object
  • Add name field to Server Object
  • Add summary field to Response Object
  • Add comprehensive validation for all new fields
  • Add comprehensive test coverage
  • Add automatic upgrade functionality

References

@BlakeTheAwesome BlakeTheAwesome requested a review from a team as a code owner September 26, 2025 06:15
@TristanSpeakEasy TristanSpeakEasy self-requested a review September 29, 2025 00:27
@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2025

📊 Test Coverage Report

Current Coverage: 74.2%
Main Branch Coverage: 74.2%

Coverage Change: ✅ No change

Coverage by Package

Package Coverage
swagger/core 🔴 0.0%
internal/version 🔴 22.2%
openapi/core 🔴 48.6%
swagger 🟠 51.7%
jsonschema/oas3 🟠 54.2%
arazzo/core 🟠 54.7%
arazzo 🟠 56.4%
extensions 🟠 57.1%
jsonschema/oas3/core 🟠 62.5%
marshaller 🟠 68.3%
openapi 🟠 69.7%
hashing 🟠 72.9%
expression 🟡 75.0%
extensions/core 🟡 75.0%
overlay 🟡 77.9%
yml 🟡 78.1%
values/core 🟡 81.0%
references 🟡 83.3%
arazzo/criterion 🟡 83.5%
jsonpointer 🟡 84.6%
json 🟡 84.9%
internal/testutils 🟡 85.7%
internal/utils 🟡 85.7%
walk 🟢 91.3%
system 🟢 91.7%
overlay/loader 🟢 92.2%
values 🟢 93.0%
sequencedmap 🟢 94.1%
validation 🟢 97.2%
cache 🟢 100.0%
errors 🟢 100.0%
internal/interfaces 🟢 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:41:				Validate					84.6%
github.com/speakeasy-api/openapi/arazzo/core/criterion.go:33:				Unmarshal					80.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						50.0%
github.com/speakeasy-api/openapi/arazzo/core/reusable.go:27:				Unmarshal					50.0%
github.com/speakeasy-api/openapi/arazzo/core/reusable.go:60:				SyncChanges					21.1%
github.com/speakeasy-api/openapi/arazzo/criterion/condition.go:41:			newCondition					87.5%
github.com/speakeasy-api/openapi/arazzo/criterion/condition.go:80:			Validate					60.0%
github.com/speakeasy-api/openapi/arazzo/criterion/condition.go:106:			handleQuotedString				100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:53:			Validate					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:84:			IsTypeProvided					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:104:			GetCore						100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:109:			IsTypeProvided					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:118:			GetType						100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:131:			GetVersion					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:139:			Populate					0.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:175:			Sync						66.7%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:183:			GetCondition					100.0%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:188:			Validate					94.4%
github.com/speakeasy-api/openapi/arazzo/criterion/criterion.go:228:			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:57:				Validate					58.3%
github.com/speakeasy-api/openapi/arazzo/info.go:32:					Validate					75.0%
github.com/speakeasy-api/openapi/arazzo/parameter.go:48:				Validate					81.5%
github.com/speakeasy-api/openapi/arazzo/payloadreplacement.go:30:			Validate					76.5%
github.com/speakeasy-api/openapi/arazzo/requestbody.go:32:				Validate					93.3%
github.com/speakeasy-api/openapi/arazzo/reusable.go:41:					Get						0.0%
github.com/speakeasy-api/openapi/arazzo/reusable.go:49:					IsReference					0.0%
github.com/speakeasy-api/openapi/arazzo/reusable.go:53:					GetReferencedObject				0.0%
github.com/speakeasy-api/openapi/arazzo/reusable.go:101:				Validate					87.5%
github.com/speakeasy-api/openapi/arazzo/reusable.go:135:				validateReference				71.4%
github.com/speakeasy-api/openapi/arazzo/reusable.go:203:				validateComponentReference			62.5%
github.com/speakeasy-api/openapi/arazzo/reusable.go:226:				typeToComponentType				75.0%
github.com/speakeasy-api/openapi/arazzo/reusable.go:240:				componentTypeToReusableType			0.0%
github.com/speakeasy-api/openapi/arazzo/sourcedescription.go:19:			Find						75.0%
github.com/speakeasy-api/openapi/arazzo/sourcedescription.go:55:			Validate					76.9%
github.com/speakeasy-api/openapi/arazzo/step.go:23:					Find						75.0%
github.com/speakeasy-api/openapi/arazzo/step.go:69:					Validate					80.8%
github.com/speakeasy-api/openapi/arazzo/successaction.go:52:				Validate					75.0%
github.com/speakeasy-api/openapi/arazzo/successaction.go:117:				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			22.2%
github.com/speakeasy-api/openapi/arazzo/walk.go:354:					walkReusableSuccessAction			0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:370:					walkReusableFailureActions			22.2%
github.com/speakeasy-api/openapi/arazzo/walk.go:389:					walkReusableFailureAction			0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:405:					walkComponents					14.3%
github.com/speakeasy-api/openapi/arazzo/walk.go:440:					walkComponentInputs				0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:459:					walkComponentParameters				0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:478:					walkParameter					0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:493:					walkComponentSuccessActions			0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:512:					walkSuccessAction				0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:527:					walkComponentFailureActions			0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:546:					walkFailureAction				0.0%
github.com/speakeasy-api/openapi/arazzo/walk.go:610:					getMatchFunc					55.0%
github.com/speakeasy-api/openapi/arazzo/workflow.go:21:					Find						75.0%
github.com/speakeasy-api/openapi/arazzo/workflow.go:64:					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						0.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			0.0%
github.com/speakeasy-api/openapi/extensions/core/extensions.go:16:			UnmarshalExtensionModel				75.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:29:				NewElem						0.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						0.0%
github.com/speakeasy-api/openapi/extensions/extensions.go:81:				Populate					0.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/hashing/hashing.go:15:					Hash						100.0%
github.com/speakeasy-api/openapi/hashing/hashing.go:27:					toHashableString				91.7%
github.com/speakeasy-api/openapi/hashing/hashing.go:106:				structToHashableString				87.0%
github.com/speakeasy-api/openapi/hashing/hashing.go:155:				yamlNodeToHashableString			0.0%
github.com/speakeasy-api/openapi/hashing/hashing.go:179:				sequencedMapToHashableString			85.7%
github.com/speakeasy-api/openapi/internal/interfaces/interfaces.go:41:			ImplementsInterface				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					0.0%
github.com/speakeasy-api/openapi/internal/utils/string_builder.go:19:			BuildAbsoluteReference				100.0%
github.com/speakeasy-api/openapi/internal/utils/string_builder.go:28:			BuildString					0.0%
github.com/speakeasy-api/openapi/internal/utils/string_builder.go:50:			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						0.0%
github.com/speakeasy-api/openapi/internal/version/version.go:29:			Equal						0.0%
github.com/speakeasy-api/openapi/internal/version/version.go:33:			GreaterThan					0.0%
github.com/speakeasy-api/openapi/internal/version/version.go:49:			LessThan					0.0%
github.com/speakeasy-api/openapi/internal/version/version.go:53:			Parse						100.0%
github.com/speakeasy-api/openapi/internal/version/version.go:86:			MustParse					0.0%
github.com/speakeasy-api/openapi/internal/version/version.go:94:			IsGreaterOrEqual				0.0%
github.com/speakeasy-api/openapi/internal/version/version.go:107:			IsLessThan					0.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					81.8%
github.com/speakeasy-api/openapi/json/json.go:388:					resolveMergeKeys				90.0%
github.com/speakeasy-api/openapi/json/json.go:453:					shouldBeMultiLine				54.5%
github.com/speakeasy-api/openapi/json/json.go:480:					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						0.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				0.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					86.4%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:271:			getKeyBasedStructTarget				100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:336:			getIndexBasedStructTarget			87.5%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:352:			getNavigableWithKeyTarget			80.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:372:			getNavigableWithIndexTarget			80.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:392:			getNavigableNoderTarget				77.8%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:410:			buildPath					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:421:			EscapeString					100.0%
github.com/speakeasy-api/openapi/jsonpointer/jsonpointer.go:425:			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						62.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:38:			GetPropertyName					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:46:			GetMapping					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:54:			GetDefaultMapping				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:62:			GetExtensions					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:70:			Validate					90.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/discriminator.go:94:			IsEqual						52.9%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:30:			GetDescription					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:38:			GetURL						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:46:			GetExtensions					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:54:			IsEqual						53.8%
github.com/speakeasy-api/openapi/jsonschema/oas3/externaldoc.go:83:			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:45:			NewJSONSchemaFromSchema				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:54:			NewJSONSchemaFromReference			0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:65:			NewJSONSchemaFromBool				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:75:			NewReferencedScheme				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:111:			IsSchema					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:121:			GetSchema					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:131:			IsBool						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:141:			GetBool						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:149:			GetExtensions					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:166:			GetParent					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:182:			GetTopLevelParent				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:195:			SetParent					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:208:			SetTopLevelParent				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:216:			IsEqual						60.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:231:			Validate					77.8%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:259:			ConcreteToReferenceable				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:267:			ReferenceableToConcrete				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:272:			ShallowCopy					88.9%
github.com/speakeasy-api/openapi/jsonschema/oas3/jsonschema.go:299:			PopulateWithParent				88.9%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:22:			IsResolved					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:31:			IsReference					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:41:			GetReference					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:51:			GetRef						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:60:			GetAbsRef					83.3%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:75:			Resolve						100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:93:			GetResolvedObject				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:103:			GetResolvedSchema				88.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:142:			MustGetResolvedSchema				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:154:			GetReferenceResolutionInfo			0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:170:			resolve						95.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:263:			joinReferenceChain				60.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:274:			resolveJSONSchemaWithTracking			95.2%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:321:			resolveDefsReference				77.8%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:365:			tryResolveDefsUsingJSONPointerNavigation	0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:411:			getParentJSONPointer				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/resolution.go:425:			unmarshaler					71.4%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:86:				ShallowCopy					72.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:187:				GetRef						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:195:				IsReference					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:203:				GetExclusiveMaximum				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:211:				GetExclusiveMinimum				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:219:				GetType						71.4%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:236:				GetAllOf					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:244:				GetOneOf					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:252:				GetAnyOf					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:260:				GetDiscriminator				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:268:				GetExamples					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:276:				GetPrefixItems					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:284:				GetContains					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:292:				GetMinContains					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:300:				GetMaxContains					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:308:				GetIf						0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:316:				GetElse						0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:324:				GetThen						0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:332:				GetDependentSchemas				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:340:				GetPatternProperties				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:348:				GetPropertyNames				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:356:				GetUnevaluatedItems				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:364:				GetUnevaluatedProperties			0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:372:				GetItems					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:380:				GetAnchor					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:388:				GetNot						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:396:				GetProperties					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:404:				GetDefs						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:412:				GetTitle					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:420:				GetMultipleOf					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:428:				GetMaximum					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:436:				GetMinimum					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:444:				GetMaxLength					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:452:				GetMinLength					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:460:				GetPattern					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:468:				GetFormat					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:476:				GetMaxItems					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:484:				GetMinItems					100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:492:				GetUniqueItems					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:500:				GetMaxProperties				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:508:				GetMinProperties				66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:516:				GetRequired					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:524:				GetEnum						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:532:				GetAdditionalProperties				0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:540:				GetDescription					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:548:				GetDefault					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:556:				GetConst					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:564:				GetNullable					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:572:				GetReadOnly					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:580:				GetWriteOnly					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:588:				GetExternalDocs					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:596:				GetExample					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:604:				GetDeprecated					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:612:				GetSchema					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:620:				GetXML						0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:628:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:638:				IsEqual						60.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:883:				GetParent					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:892:				SetParent					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:900:				PopulateWithParent				75.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:930:				equalJSONSchemas				80.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:940:				equalJSONSchemaSlices				25.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:956:				equalSequencedMaps				100.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:985:				equalSlices					87.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/schema.go:1001:			equalValueSlices				87.5%
github.com/speakeasy-api/openapi/jsonschema/oas3/validation.go:66:			Validate					0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/validation.go:78:			Validate					84.4%
github.com/speakeasy-api/openapi/jsonschema/oas3/validation.go:152:			getRootCauses					80.6%
github.com/speakeasy-api/openapi/jsonschema/oas3/validation.go:225:			initValidation					57.6%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:16:				NewExclusiveMaximumFromBool			0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:22:				NewExclusiveMaximumFromFloat64			0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:28:				NewExclusiveMinimumFromBool			0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:34:				NewExclusiveMinimumFromFloat64			0.0%
github.com/speakeasy-api/openapi/jsonschema/oas3/value.go:40:				NewTypeFromArray				0.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					44.4%
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						66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:44:				GetNamespace					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:52:				GetPrefix					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:60:				GetAttribute					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:68:				GetWrapped					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:76:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:84:				IsEqual						47.4%
github.com/speakeasy-api/openapi/jsonschema/oas3/xml.go:120:				Validate					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:43:				GetRootNode					100.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:47:				GetRootNodeLine					0.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					0.0%
github.com/speakeasy-api/openapi/marshaller/coremodel.go:71:				GetValidYaml					0.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				0.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:58:				GetCore						66.7%
github.com/speakeasy-api/openapi/marshaller/model.go:68:				GetCoreAny					0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:89:				GetRootNode					60.0%
github.com/speakeasy-api/openapi/marshaller/model.go:100:				GetRootNodeLine					0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:111:				GetRootNodeColumn				0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:122:				GetPropertyLine					92.9%
github.com/speakeasy-api/openapi/marshaller/model.go:156:				SetCore						100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:163:				SetCoreAny					100.0%
github.com/speakeasy-api/openapi/marshaller/model.go:171:				GetCachedReferencedObject			0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:178:				StoreReferencedObjectInCache			0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:182:				GetCachedReferenceDocument			0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:194:				StoreReferenceDocumentInCache			0.0%
github.com/speakeasy-api/openapi/marshaller/model.go:198:				InitCache					0.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				0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:87:					GetKeyNodeOrRootLine				0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:95:					GetValueNode					0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:99:					GetValueNodeOrRoot				0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:106:				GetValueNodeOrRootLine				0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:115:				GetSliceValueNodeOrRoot				0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:133:				GetMapKeyNodeOrRoot				0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:152:				GetMapKeyNodeOrRootLine				0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:161:				GetMapValueNodeOrRoot				0.0%
github.com/speakeasy-api/openapi/marshaller/node.go:180:				GetNavigableNode				0.0%
github.com/speakeasy-api/openapi/marshaller/populator.go:33:				Populate					47.4%
github.com/speakeasy-api/openapi/marshaller/populator.go:70:				PopulateWithParent				47.4%
github.com/speakeasy-api/openapi/marshaller/populator.go:107:				PopulateModel					81.4%
github.com/speakeasy-api/openapi/marshaller/populator.go:213:				populateValueWithParent				73.6%
github.com/speakeasy-api/openapi/marshaller/populator.go:324:				getSequencedMapInterface			68.2%
github.com/speakeasy-api/openapi/marshaller/populator.go:372:				getSourceForPopulation				22.2%
github.com/speakeasy-api/openapi/marshaller/populator.go:391:				isEmbeddedSequencedMapType			100.0%
github.com/speakeasy-api/openapi/marshaller/sequencedmap.go:24:				unmarshalSequencedMap				88.1%
github.com/speakeasy-api/openapi/marshaller/sequencedmap.go:115:			populateSequencedMap				80.0%
github.com/speakeasy-api/openapi/marshaller/sequencedmap.go:190:			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					0.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:145:			unmarshal					79.2%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:252:			unmarshalMapping				75.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:277:			unmarshalModel					87.4%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:479:			unmarshalStruct					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:483:			decodeNode					80.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:506:			unmarshalSequence				82.6%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:550:			unmarshalNode					66.7%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:601:			implementsInterface				75.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:622:			isEmbeddedSequencedMap				100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:627:			isStructType					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:632:			isSliceType					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:637:			isMapType					100.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:642:			validateNodeKind				93.3%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:701:			asTypeMismatchError				75.0%
github.com/speakeasy-api/openapi/marshaller/unmarshaller.go:710:			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:29:				NewCallback					0.0%
github.com/speakeasy-api/openapi/openapi/callbacks.go:36:				Len						66.7%
github.com/speakeasy-api/openapi/openapi/callbacks.go:44:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/openapi/callbacks.go:51:				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					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:55:				GetResponses					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:63:				GetParameters					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:71:				GetExamples					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:79:				GetRequestBodies				66.7%
github.com/speakeasy-api/openapi/openapi/components.go:87:				GetHeaders					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:95:				GetSecuritySchemes				66.7%
github.com/speakeasy-api/openapi/openapi/components.go:103:				GetLinks					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:111:				GetCallbacks					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:119:				GetPathItems					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:127:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/components.go:135:				Validate					100.0%
github.com/speakeasy-api/openapi/openapi/core/callbacks.go:17:				NewCallback					0.0%
github.com/speakeasy-api/openapi/openapi/core/callbacks.go:23:				GetMapKeyNodeOrRoot				75.0%
github.com/speakeasy-api/openapi/openapi/core/callbacks.go:41:				GetMapKeyNodeOrRootLine				75.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					0.0%
github.com/speakeasy-api/openapi/openapi/core/paths.go:23:				GetMapKeyNodeOrRoot				75.0%
github.com/speakeasy-api/openapi/openapi/core/paths.go:41:				GetMapKeyNodeOrRootLine				75.0%
github.com/speakeasy-api/openapi/openapi/core/paths.go:64:				NewPathItem					0.0%
github.com/speakeasy-api/openapi/openapi/core/paths.go:70:				GetMapKeyNodeOrRoot				75.0%
github.com/speakeasy-api/openapi/openapi/core/paths.go:88:				GetMapKeyNodeOrRootLine				75.0%
github.com/speakeasy-api/openapi/openapi/core/reference.go:28:				Unmarshal					66.7%
github.com/speakeasy-api/openapi/openapi/core/reference.go:57:				SyncChanges					0.0%
github.com/speakeasy-api/openapi/openapi/core/responses.go:18:				NewResponses					0.0%
github.com/speakeasy-api/openapi/openapi/core/responses.go:24:				GetMapKeyNodeOrRoot				75.0%
github.com/speakeasy-api/openapi/openapi/core/responses.go:42:				GetMapKeyNodeOrRootLine				75.0%
github.com/speakeasy-api/openapi/openapi/core/security.go:31:				NewSecurityRequirement				0.0%
github.com/speakeasy-api/openapi/openapi/core/security.go:37:				GetMapKeyNodeOrRoot				75.0%
github.com/speakeasy-api/openapi/openapi/core/security.go:55:				GetMapKeyNodeOrRootLine				75.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:42:				GetContentType					0.0%
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					0.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:110:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/openapi/encoding.go:118:				Validate					94.4%
github.com/speakeasy-api/openapi/openapi/examples.go:39:				GetSummary					66.7%
github.com/speakeasy-api/openapi/openapi/examples.go:47:				GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/examples.go:55:				GetValue					66.7%
github.com/speakeasy-api/openapi/openapi/examples.go:63:				GetExternalValue				66.7%
github.com/speakeasy-api/openapi/openapi/examples.go:71:				GetDataValue					66.7%
github.com/speakeasy-api/openapi/openapi/examples.go:79:				GetSerializedValue				66.7%
github.com/speakeasy-api/openapi/openapi/examples.go:87:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/examples.go:95:				ResolveExternalValue				0.0%
github.com/speakeasy-api/openapi/openapi/examples.go:101:				Validate					100.0%
github.com/speakeasy-api/openapi/openapi/factory_registration.go:13:			init						93.9%
github.com/speakeasy-api/openapi/openapi/header.go:47:					GetSchema					66.7%
github.com/speakeasy-api/openapi/openapi/header.go:55:					GetRequired					0.0%
github.com/speakeasy-api/openapi/openapi/header.go:63:					GetDeprecated					0.0%
github.com/speakeasy-api/openapi/openapi/header.go:71:					GetStyle					0.0%
github.com/speakeasy-api/openapi/openapi/header.go:79:					GetExplode					0.0%
github.com/speakeasy-api/openapi/openapi/header.go:87:					GetContent					0.0%
github.com/speakeasy-api/openapi/openapi/header.go:95:					GetExample					0.0%
github.com/speakeasy-api/openapi/openapi/header.go:103:					GetExamples					0.0%
github.com/speakeasy-api/openapi/openapi/header.go:111:					GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/header.go:119:					GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/header.go:127:					Validate					93.8%
github.com/speakeasy-api/openapi/openapi/info.go:40:					GetTitle					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:48:					GetVersion					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:56:					GetSummary					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:64:					GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:72:					GetTermsOfService				66.7%
github.com/speakeasy-api/openapi/openapi/info.go:80:					GetContact					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:88:					GetLicense					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:96:					GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:104:					Validate					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:151:					GetName						66.7%
github.com/speakeasy-api/openapi/openapi/info.go:159:					GetURL						66.7%
github.com/speakeasy-api/openapi/openapi/info.go:167:					GetEmail					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:175:					GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:183:					Validate					100.0%
github.com/speakeasy-api/openapi/openapi/info.go:221:					GetName						66.7%
github.com/speakeasy-api/openapi/openapi/info.go:229:					GetIdentifier					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:237:					GetURL						66.7%
github.com/speakeasy-api/openapi/openapi/info.go:245:					GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/info.go:253:					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:195:					joinSingleDocument				83.3%
github.com/speakeasy-api/openapi/openapi/join.go:231:					joinPaths					71.4%
github.com/speakeasy-api/openapi/openapi/join.go:283:					mergePathItemOperations				92.3%
github.com/speakeasy-api/openapi/openapi/join.go:320:					createPathItemWithOperations			100.0%
github.com/speakeasy-api/openapi/openapi/join.go:332:					generateConflictPath				100.0%
github.com/speakeasy-api/openapi/openapi/join.go:348:					joinWebhooks					83.3%
github.com/speakeasy-api/openapi/openapi/join.go:366:					joinComponents					62.5%
github.com/speakeasy-api/openapi/openapi/join.go:388:					joinSchemas					89.5%
github.com/speakeasy-api/openapi/openapi/join.go:429:					joinOtherComponents				50.3%
github.com/speakeasy-api/openapi/openapi/join.go:670:					generateJoinComponentName			75.0%
github.com/speakeasy-api/openapi/openapi/join.go:682:					generateJoinFilePathBasedName			84.6%
github.com/speakeasy-api/openapi/openapi/join.go:710:					generateJoinCounterBasedName			100.0%
github.com/speakeasy-api/openapi/openapi/join.go:722:					updateReferencesInDocument			79.2%
github.com/speakeasy-api/openapi/openapi/join.go:781:					updateComponentReference			20.0%
github.com/speakeasy-api/openapi/openapi/join.go:800:					joinTags					100.0%
github.com/speakeasy-api/openapi/openapi/join.go:823:					collectOperationIds				81.2%
github.com/speakeasy-api/openapi/openapi/join.go:860:					resolveOperationIdConflicts			69.6%
github.com/speakeasy-api/openapi/openapi/join.go:912:					generateDocumentName				100.0%
github.com/speakeasy-api/openapi/openapi/join.go:927:					joinServersAndSecurity				100.0%
github.com/speakeasy-api/openapi/openapi/join.go:954:					areServersIdentical				85.7%
github.com/speakeasy-api/openapi/openapi/join.go:973:					areSecurityIdentical				100.0%
github.com/speakeasy-api/openapi/openapi/join.go:989:					applyGlobalServersSecurityToOperations		83.3%
github.com/speakeasy-api/openapi/openapi/links.go:40:					GetOperationID					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:48:					GetOperationRef					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:56:					GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/links.go:64:					GetParameters					66.7%
github.com/speakeasy-api/openapi/openapi/links.go:72:					GetRequestBody					0.0%
github.com/speakeasy-api/openapi/openapi/links.go:80:					GetServer					0.0%
github.com/speakeasy-api/openapi/openapi/links.go:88:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/openapi/links.go:95:					ResolveOperation				0.0%
github.com/speakeasy-api/openapi/openapi/links.go:100:					Validate					92.9%
github.com/speakeasy-api/openapi/openapi/localize.go:114:				Localize					60.0%
github.com/speakeasy-api/openapi/openapi/localize.go:168:				discoverExternalReferences			46.7%
github.com/speakeasy-api/openapi/openapi/localize.go:211:				discoverSchemaReference				87.1%
github.com/speakeasy-api/openapi/openapi/localize.go:285:				discoverGenericReference			4.8%
github.com/speakeasy-api/openapi/openapi/localize.go:389:				generateLocalizedFilenames			100.0%
github.com/speakeasy-api/openapi/openapi/localize.go:430:				generateLocalizedFilenameWithConflictDetection	88.9%
github.com/speakeasy-api/openapi/openapi/localize.go:451:				generatePathBasedFilenameWithConflictDetection	58.1%
github.com/speakeasy-api/openapi/openapi/localize.go:515:				generateCounterBasedFilename			100.0%
github.com/speakeasy-api/openapi/openapi/localize.go:532:				copyExternalFiles				77.8%
github.com/speakeasy-api/openapi/openapi/localize.go:553:				rewriteInternalReferences			66.7%
github.com/speakeasy-api/openapi/openapi/localize.go:575:				rewriteYAMLReferences				77.8%
github.com/speakeasy-api/openapi/openapi/localize.go:616:				rewriteReferenceValue				89.5%
github.com/speakeasy-api/openapi/openapi/localize.go:663:				resolveRelativeReference			75.9%
github.com/speakeasy-api/openapi/openapi/localize.go:729:				rewriteReferencesToLocalized			67.9%
github.com/speakeasy-api/openapi/openapi/localize.go:796:				updateGenericReference				14.3%
github.com/speakeasy-api/openapi/openapi/localize.go:827:				normalizeFilePath				80.0%
github.com/speakeasy-api/openapi/openapi/localize.go:871:				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:47:				GetSchema					66.7%
github.com/speakeasy-api/openapi/openapi/mediatype.go:55:				GetItemSchema					0.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:63:				GetEncoding					66.7%
github.com/speakeasy-api/openapi/openapi/mediatype.go:71:				GetPrefixEncoding				0.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:79:				GetItemEncoding					0.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:87:				GetExamples					66.7%
github.com/speakeasy-api/openapi/openapi/mediatype.go:95:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/mediatype.go:103:				Validate					100.0%
github.com/speakeasy-api/openapi/openapi/mediatype.go:184:				GetExample					66.7%
github.com/speakeasy-api/openapi/openapi/openapi.go:66:					NewOpenAPI					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:73:					GetOpenAPI					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:81:					GetSelf						100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:89:					GetInfo						100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:97:					GetExternalDocs					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:105:				GetTags						100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:113:				GetServers					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:121:				GetSecurity					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:129:				GetPaths					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:137:				GetExtensions					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:145:				GetWebhooks					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:153:				GetComponents					100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:161:				GetJSONSchemaDialect				100.0%
github.com/speakeasy-api/openapi/openapi/openapi.go:169:				Validate					94.3%
github.com/speakeasy-api/openapi/openapi/operation.go:53:				GetOperationID					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:61:				GetSummary					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:69:				GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:77:				GetDeprecated					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:85:				GetTags						66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:93:				GetServers					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:101:				GetSecurity					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:109:				GetParameters					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:117:				GetRequestBody					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:125:				GetResponses					100.0%
github.com/speakeasy-api/openapi/openapi/operation.go:130:				GetCallbacks					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:138:				GetExternalDocs					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:146:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/operation.go:156:				IsDeprecated					0.0%
github.com/speakeasy-api/openapi/openapi/operation.go:161:				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:24:				String						0.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:78:				GetName						66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:86:				GetIn						66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:94:				GetSchema					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:102:				GetRequired					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:110:				GetDeprecated					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:118:				GetAllowEmptyValue				66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:133:				GetStyle					22.2%
github.com/speakeasy-api/openapi/openapi/parameter.go:154:				GetExplode					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:162:				GetContent					0.0%
github.com/speakeasy-api/openapi/openapi/parameter.go:170:				GetExample					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:178:				GetExamples					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:186:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:194:				GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:202:				GetAllowReserved				66.7%
github.com/speakeasy-api/openapi/openapi/parameter.go:210:				Validate					72.7%
github.com/speakeasy-api/openapi/openapi/paths.go:30:					NewPaths					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:37:					Len						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:45:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/openapi/paths.go:53:					Validate					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:101:					Is						0.0%
github.com/speakeasy-api/openapi/openapi/paths.go:105:					IsStandardMethod				100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:135:					NewPathItem					100.0%
github.com/speakeasy-api/openapi/openapi/paths.go:142:					Len						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:150:					GetOperation					83.3%
github.com/speakeasy-api/openapi/openapi/paths.go:164:					Get						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:172:					Put						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:180:					Post						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:188:					Delete						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:196:					Options						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:204:					Head						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:212:					Patch						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:220:					Trace						66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:228:					Query						0.0%
github.com/speakeasy-api/openapi/openapi/paths.go:236:					GetAdditionalOperations				0.0%
github.com/speakeasy-api/openapi/openapi/paths.go:244:					GetSummary					66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:252:					GetServers					0.0%
github.com/speakeasy-api/openapi/openapi/paths.go:260:					GetParameters					0.0%
github.com/speakeasy-api/openapi/openapi/paths.go:268:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/openapi/paths.go:276:					GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/paths.go:284:					Validate					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:42:				NewReferencedPathItemFromRef			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:49:				NewReferencedPathItemFromPathItem		0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:56:				NewReferencedExampleFromRef			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:63:				NewReferencedExampleFromExample			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:70:				NewReferencedParameterFromRef			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:77:				NewReferencedParameterFromParameter		0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:84:				NewReferencedHeaderFromRef			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:91:				NewReferencedHeaderFromHeader			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:98:				NewReferencedRequestBodyFromRef			0.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		0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:126:				NewReferencedCallbackFromRef			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:133:				NewReferencedCallbackFromCallback		0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:140:				NewReferencedLinkFromRef			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:147:				NewReferencedLinkFromLink			0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:154:				NewReferencedSecuritySchemeFromRef		0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:161:				NewReferencedSecuritySchemeFromSecurityScheme	0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:219:				Resolve						83.3%
github.com/speakeasy-api/openapi/openapi/reference.go:240:				IsReference					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:248:				IsResolved					75.0%
github.com/speakeasy-api/openapi/openapi/reference.go:264:				GetReference					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:273:				GetResolvedObject				0.0%
github.com/speakeasy-api/openapi/openapi/reference.go:283:				GetObject					81.8%
github.com/speakeasy-api/openapi/openapi/reference.go:306:				MustGetObject					66.7%
github.com/speakeasy-api/openapi/openapi/reference.go:320:				GetObjectAny					66.7%
github.com/speakeasy-api/openapi/openapi/reference.go:328:				GetSummary					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:336:				GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:352:				GetParent					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:368:				GetTopLevelParent				100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:381:				SetParent					100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:394:				SetTopLevelParent				100.0%
github.com/speakeasy-api/openapi/openapi/reference.go:402:				Validate					93.8%
github.com/speakeasy-api/openapi/openapi/reference.go:432:				Populate					84.6%
github.com/speakeasy-api/openapi/openapi/reference.go:458:				GetNavigableNode				33.3%
github.com/speakeasy-api/openapi/openapi/reference.go:470:				GetReferenceResolutionInfo			70.0%
github.com/speakeasy-api/openapi/openapi/reference.go:490:				resolve						84.8%
github.com/speakeasy-api/openapi/openapi/reference.go:555:				resolveObjectWithTracking			92.5%
github.com/speakeasy-api/openapi/openapi/reference.go:632:				joinReferenceChain				80.0%
github.com/speakeasy-api/openapi/openapi/reference.go:649:				unmarshaler					75.0%
github.com/speakeasy-api/openapi/openapi/reference.go:665:				ensureMutex					100.0%
github.com/speakeasy-api/openapi/openapi/requests.go:31:				GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/requests.go:39:				GetContent					66.7%
github.com/speakeasy-api/openapi/openapi/requests.go:47:				GetRequired					66.7%
github.com/speakeasy-api/openapi/openapi/requests.go:55:				Validate					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:29:				NewResponses					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:36:				Len						66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:44:				GetDefault					66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:52:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:59:				Populate					84.0%
github.com/speakeasy-api/openapi/openapi/responses.go:108:				Validate					100.0%
github.com/speakeasy-api/openapi/openapi/responses.go:149:				GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:157:				GetHeaders					66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:165:				GetContent					66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:173:				GetLinks					66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:181:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/responses.go:189:				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				72.7%
github.com/speakeasy-api/openapi/openapi/sanitize.go:633:				removePropertiesFromNode			87.5%
github.com/speakeasy-api/openapi/openapi/security.go:22:				String						100.0%
github.com/speakeasy-api/openapi/openapi/security.go:38:				String						100.0%
github.com/speakeasy-api/openapi/openapi/security.go:78:				GetType						66.7%
github.com/speakeasy-api/openapi/openapi/security.go:86:				GetDescription					0.0%
github.com/speakeasy-api/openapi/openapi/security.go:94:				GetName						66.7%
github.com/speakeasy-api/openapi/openapi/security.go:102:				GetIn						66.7%
github.com/speakeasy-api/openapi/openapi/security.go:110:				GetScheme					0.0%
github.com/speakeasy-api/openapi/openapi/security.go:118:				GetBearerFormat					0.0%
github.com/speakeasy-api/openapi/openapi/security.go:126:				GetFlows					0.0%
github.com/speakeasy-api/openapi/openapi/security.go:134:				GetOpenIdConnectUrl				0.0%
github.com/speakeasy-api/openapi/openapi/security.go:142:				GetOAuth2MetadataUrl				0.0%
github.com/speakeasy-api/openapi/openapi/security.go:150:				GetDeprecated					0.0%
github.com/speakeasy-api/openapi/openapi/security.go:158:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/openapi/security.go:166:				Validate					96.0%
github.com/speakeasy-api/openapi/openapi/security.go:234:				NewSecurityRequirement				100.0%
github.com/speakeasy-api/openapi/openapi/security.go:240:				Populate					93.8%
github.com/speakeasy-api/openapi/openapi/security.go:275:				Validate					92.9%
github.com/speakeasy-api/openapi/openapi/security.go:345:				GetImplicit					66.7%
github.com/speakeasy-api/openapi/openapi/security.go:353:				GetPassword					66.7%
github.com/speakeasy-api/openapi/openapi/security.go:361:				GetClientCredentials				66.7%
github.com/speakeasy-api/openapi/openapi/security.go:369:				GetAuthorizationCode				66.7%
github.com/speakeasy-api/openapi/openapi/security.go:377:				GetDeviceAuthorization				66.7%
github.com/speakeasy-api/openapi/openapi/security.go:385:				GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/security.go:393:				Validate					100.0%
github.com/speakeasy-api/openapi/openapi/security.go:439:				GetAuthorizationURL				66.7%
github.com/speakeasy-api/openapi/openapi/security.go:447:				GetDeviceAuthorizationURL			66.7%
github.com/speakeasy-api/openapi/openapi/security.go:455:				GetTokenURL					66.7%
github.com/speakeasy-api/openapi/openapi/security.go:463:				GetRefreshURL					66.7%
github.com/speakeasy-api/openapi/openapi/security.go:471:				GetScopes					66.7%
github.com/speakeasy-api/openapi/openapi/security.go:479:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/openapi/security.go:487:				Validate					78.6%
github.com/speakeasy-api/openapi/openapi/serialization.go:10:				String						0.0%
github.com/speakeasy-api/openapi/openapi/server.go:43:					GetURL						66.7%
github.com/speakeasy-api/openapi/openapi/server.go:51:					GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/server.go:59:					GetName						66.7%
github.com/speakeasy-api/openapi/openapi/server.go:67:					GetVariables					66.7%
github.com/speakeasy-api/openapi/openapi/server.go:75:					GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/server.go:83:					Validate					93.3%
github.com/speakeasy-api/openapi/openapi/server.go:131:					GetDefault					66.7%
github.com/speakeasy-api/openapi/openapi/server.go:139:					GetEnum						66.7%
github.com/speakeasy-api/openapi/openapi/server.go:147:					GetDescription					66.7%
github.com/speakeasy-api/openapi/openapi/server.go:155:					Validate					100.0%
github.com/speakeasy-api/openapi/openapi/server.go:174:					resolveServerVariables				93.8%
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:38:					GetName						66.7%
github.com/speakeasy-api/openapi/openapi/tag.go:46:					GetDescription					100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:54:					GetExternalDocs					66.7%
github.com/speakeasy-api/openapi/openapi/tag.go:62:					GetSummary					66.7%
github.com/speakeasy-api/openapi/openapi/tag.go:70:					GetParent					100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:78:					GetKind						100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:86:					GetExtensions					66.7%
github.com/speakeasy-api/openapi/openapi/tag.go:94:					Validate					100.0%
github.com/speakeasy-api/openapi/openapi/tag.go:143:					hasCircularParentReference			100.0%
github.com/speakeasy-api/openapi/openapi/tag_kind_registry.go:25:			String						0.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					20.5%
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					66.7%
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/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:174:					applyUpdateAction				78.6%
github.com/speakeasy-api/openapi/overlay/apply.go:201:					updateNode					100.0%
github.com/speakeasy-api/openapi/overlay/apply.go:205:					mergeNode					100.0%
github.com/speakeasy-api/openapi/overlay/apply.go:224:					mergeMappingNode				100.0%
github.com/speakeasy-api/openapi/overlay/apply.go:253:					mergeSequenceNode				100.0%
github.com/speakeasy-api/openapi/overlay/apply.go:258:					clone						87.5%
github.com/speakeasy-api/openapi/overlay/apply.go:283:					applyCopyAction					80.8%
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:20:				Query						75.0%
github.com/speakeasy-api/openapi/overlay/jsonpath.go:29:				NewPath						100.0%
github.com/speakeasy-api/openapi/overlay/jsonpath.go:42:				UsesRFC9535					100.0%
github.com/speakeasy-api/openapi/overlay/jsonpath.go:46:				mustExecute					100.0%
github.com/speakeasy-api/openapi/overlay/loader/overlay.go:11:				LoadOverlay					100.0%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:20:				GetOverlayExtendsPath				61.1%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:64:				LoadExtendsSpecification			100.0%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:74:				LoadSpecification				100.0%
github.com/speakeasy-api/openapi/overlay/loader/spec.go:94:				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:					Parse						72.7%
github.com/speakeasy-api/openapi/overlay/parse.go:34:					Format						0.0%
github.com/speakeasy-api/openapi/overlay/parse.go:52:					Format						0.0%
github.com/speakeasy-api/openapi/overlay/schema.go:33:					ToString					100.0%
github.com/speakeasy-api/openapi/overlay/utils.go:9:					NewTargetSelector				0.0%
github.com/speakeasy-api/openapi/overlay/utils.go:13:					NewUpdateAction					0.0%
github.com/speakeasy-api/openapi/overlay/validate.go:12:				Error						100.0%
github.com/speakeasy-api/openapi/overlay/validate.go:20:				Return						66.7%
github.com/speakeasy-api/openapi/overlay/validate.go:27:				Validate					57.9%
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:16:				GetURI						75.0%
github.com/speakeasy-api/openapi/references/reference.go:25:				HasJSONPointer					100.0%
github.com/speakeasy-api/openapi/references/reference.go:29:				GetJSONPointer					100.0%
github.com/speakeasy-api/openapi/references/reference.go:46:				Validate					100.0%
github.com/speakeasy-api/openapi/references/reference.go:73:				String						0.0%
github.com/speakeasy-api/openapi/references/resolution.go:46:				ResolveAbsoluteReference			100.0%
github.com/speakeasy-api/openapi/references/resolution.go:80:				Resolve						92.7%
github.com/speakeasy-api/openapi/references/resolution.go:203:				resolveAgainstURL				90.0%
github.com/speakeasy-api/openapi/references/resolution.go:224:				resolveAgainstFilePath				100.0%
github.com/speakeasy-api/openapi/references/resolution.go:234:				resolveAgainstDocument				80.0%
github.com/speakeasy-api/openapi/references/resolution.go:254:				resolveAgainstData				69.2%
github.com/speakeasy-api/openapi/references/resolution.go:302:				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:41:				NewElem						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:49:				GetKey						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:58:				GetValue					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:75:				New						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:80:				NewWithCapacity					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:84:				newMap						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:117:				Init						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:125:				IsInitialized					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:133:				Len						66.7%
github.com/speakeasy-api/openapi/sequencedmap/map.go:141:				Set						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:159:				Add						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:182:				SetAny						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:195:				AddAny						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:208:				GetAny						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:218:				DeleteAny					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:228:				KeysAny						88.9%
github.com/speakeasy-api/openapi/sequencedmap/map.go:252:				SetUntyped					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:271:				Get						85.7%
github.com/speakeasy-api/openapi/sequencedmap/map.go:288:				GetUntyped					90.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:308:				GetOrZero					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:323:				Has						75.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:333:				Delete						85.7%
github.com/speakeasy-api/openapi/sequencedmap/map.go:350:				First						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:359:				Last						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:368:				At						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:382:				All						88.9%
github.com/speakeasy-api/openapi/sequencedmap/map.go:407:				AllOrdered					96.8%
github.com/speakeasy-api/openapi/sequencedmap/map.go:479:				AllUntyped					88.9%
github.com/speakeasy-api/openapi/sequencedmap/map.go:502:				Keys						77.8%
github.com/speakeasy-api/openapi/sequencedmap/map.go:525:				Values						77.8%
github.com/speakeasy-api/openapi/sequencedmap/map.go:547:				GetKeyType					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:553:				GetValueType					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:560:				NavigateWithKey					93.8%
github.com/speakeasy-api/openapi/sequencedmap/map.go:591:				MarshalJSON					76.2%
github.com/speakeasy-api/openapi/sequencedmap/map.go:688:				UnmarshalYAML					89.5%
github.com/speakeasy-api/openapi/sequencedmap/map.go:733:				MarshalYAML					83.3%
github.com/speakeasy-api/openapi/sequencedmap/map.go:755:				compareKeys					100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:766:				IsEqual						100.0%
github.com/speakeasy-api/openapi/sequencedmap/map.go:807:				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						0.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:18:				NewPaths					0.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:24:				GetMapKeyNodeOrRoot				0.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:42:				GetMapKeyNodeOrRootLine				0.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:60:				NewPathItem					0.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:66:				GetMapKeyNodeOrRoot				0.0%
github.com/speakeasy-api/openapi/swagger/core/paths.go:84:				GetMapKeyNodeOrRootLine				0.0%
github.com/speakeasy-api/openapi/swagger/core/reference.go:26:				Unmarshal					0.0%
github.com/speakeasy-api/openapi/swagger/core/reference.go:53:				SyncChanges					0.0%
github.com/speakeasy-api/openapi/swagger/core/response.go:21:				NewResponses					0.0%
github.com/speakeasy-api/openapi/swagger/core/response.go:27:				GetMapKeyNodeOrRoot				0.0%
github.com/speakeasy-api/openapi/swagger/core/response.go:45:				GetMapKeyNodeOrRootLine				0.0%
github.com/speakeasy-api/openapi/swagger/core/security.go:30:				NewSecurityRequirement				0.0%
github.com/speakeasy-api/openapi/swagger/externaldocs.go:29:				GetDescription					66.7%
github.com/speakeasy-api/openapi/swagger/externaldocs.go:37:				GetURL						66.7%
github.com/speakeasy-api/openapi/swagger/externaldocs.go:45:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/externaldocs.go:53:				Validate					77.8%
github.com/speakeasy-api/openapi/swagger/factory_registration.go:11:			init						89.5%
github.com/speakeasy-api/openapi/swagger/info.go:38:					GetTitle					66.7%
github.com/speakeasy-api/openapi/swagger/info.go:46:					GetDescription					66.7%
github.com/speakeasy-api/openapi/swagger/info.go:54:					GetTermsOfService				0.0%
github.com/speakeasy-api/openapi/swagger/info.go:62:					GetContact					0.0%
github.com/speakeasy-api/openapi/swagger/info.go:70:					GetLicense					0.0%
github.com/speakeasy-api/openapi/swagger/info.go:78:					GetVersion					66.7%
github.com/speakeasy-api/openapi/swagger/info.go:86:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/info.go:94:					Validate					80.0%
github.com/speakeasy-api/openapi/swagger/info.go:142:					GetName						66.7%
github.com/speakeasy-api/openapi/swagger/info.go:150:					GetURL						66.7%
github.com/speakeasy-api/openapi/swagger/info.go:158:					GetEmail					66.7%
github.com/speakeasy-api/openapi/swagger/info.go:166:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/info.go:174:					Validate					90.0%
github.com/speakeasy-api/openapi/swagger/info.go:210:					GetName						66.7%
github.com/speakeasy-api/openapi/swagger/info.go:218:					GetURL						66.7%
github.com/speakeasy-api/openapi/swagger/info.go:226:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/info.go:234:					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:49:				GetTags						66.7%
github.com/speakeasy-api/openapi/swagger/operation.go:57:				GetSummary					66.7%
github.com/speakeasy-api/openapi/swagger/operation.go:65:				GetDescription					66.7%
github.com/speakeasy-api/openapi/swagger/operation.go:73:				GetExternalDocs					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:81:				GetOperationID					66.7%
github.com/speakeasy-api/openapi/swagger/operation.go:89:				GetConsumes					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:97:				GetProduces					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:105:				GetParameters					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:113:				GetResponses					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:121:				GetSchemes					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:129:				GetDeprecated					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:137:				GetSecurity					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:145:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/operation.go:153:				Validate					90.6%
github.com/speakeasy-api/openapi/swagger/parameter.go:110:				GetName						66.7%
github.com/speakeasy-api/openapi/swagger/parameter.go:118:				GetIn						66.7%
github.com/speakeasy-api/openapi/swagger/parameter.go:126:				GetDescription					0.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:134:				GetRequired					100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:142:				GetSchema					0.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:150:				GetType						66.7%
github.com/speakeasy-api/openapi/swagger/parameter.go:158:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:166:				Validate					92.9%
github.com/speakeasy-api/openapi/swagger/parameter.go:222:				validateIn					100.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:240:				validateParameterType				93.8%
github.com/speakeasy-api/openapi/swagger/parameter.go:351:				GetType						66.7%
github.com/speakeasy-api/openapi/swagger/parameter.go:359:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/parameter.go:367:				Validate					94.7%
github.com/speakeasy-api/openapi/swagger/paths.go:27:					NewPaths					100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:34:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:42:					Validate					100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:98:					NewPathItem					0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:105:					GetRef						0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:113:					GetParameters					0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:121:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:129:					GetOperation					66.7%
github.com/speakeasy-api/openapi/swagger/paths.go:143:					Get						100.0%
github.com/speakeasy-api/openapi/swagger/paths.go:148:					Put						0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:153:					Post						0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:158:					Delete						0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:163:					Options						0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:168:					Head						0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:173:					Patch						0.0%
github.com/speakeasy-api/openapi/swagger/paths.go:178:					Validate					100.0%
github.com/speakeasy-api/openapi/swagger/reference.go:24:				NewReferencedParameterFromRef			0.0%
github.com/speakeasy-api/openapi/swagger/reference.go:31:				NewReferencedParameterFromParameter		0.0%
github.com/speakeasy-api/openapi/swagger/reference.go:38:				NewReferencedResponseFromRef			0.0%
github.com/speakeasy-api/openapi/swagger/reference.go:45:				NewReferencedResponseFromResponse		0.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:30:				NewResponses					0.0%
github.com/speakeasy-api/openapi/swagger/response.go:37:				GetDefault					0.0%
github.com/speakeasy-api/openapi/swagger/response.go:45:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/response.go:53:				Validate					100.0%
github.com/speakeasy-api/openapi/swagger/response.go:97:				GetDescription					66.7%
github.com/speakeasy-api/openapi/swagger/response.go:105:				GetSchema					0.0%
github.com/speakeasy-api/openapi/swagger/response.go:113:				GetHeaders					0.0%
github.com/speakeasy-api/openapi/swagger/response.go:121:				GetExamples					0.0%
github.com/speakeasy-api/openapi/swagger/response.go:129:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/response.go:137:				Validate					87.5%
github.com/speakeasy-api/openapi/swagger/response.go:202:				GetDescription					66.7%
github.com/speakeasy-api/openapi/swagger/response.go:210:				GetType						66.7%
github.com/speakeasy-api/openapi/swagger/response.go:218:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/response.go:226:				Validate					94.7%
github.com/speakeasy-api/openapi/swagger/security.go:79:				GetType						66.7%
github.com/speakeasy-api/openapi/swagger/security.go:87:				GetDescription					0.0%
github.com/speakeasy-api/openapi/swagger/security.go:95:				GetName						66.7%
github.com/speakeasy-api/openapi/swagger/security.go:103:				GetIn						66.7%
github.com/speakeasy-api/openapi/swagger/security.go:111:				GetFlow						66.7%
github.com/speakeasy-api/openapi/swagger/security.go:119:				GetAuthorizationURL				66.7%
github.com/speakeasy-api/openapi/swagger/security.go:127:				GetTokenURL					66.7%
github.com/speakeasy-api/openapi/swagger/security.go:135:				GetScopes					0.0%
github.com/speakeasy-api/openapi/swagger/security.go:143:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/security.go:151:				Validate					93.3%
github.com/speakeasy-api/openapi/swagger/security.go:247:				NewSecurityRequirement				0.0%
github.com/speakeasy-api/openapi/swagger/security.go:254:				Validate					88.9%
github.com/speakeasy-api/openapi/swagger/swagger.go:61:					GetSwagger					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:69:					GetInfo						0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:77:					GetHost						100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:85:					GetBasePath					100.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:93:					GetSchemes					66.7%
github.com/speakeasy-api/openapi/swagger/swagger.go:101:				GetConsumes					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:109:				GetProduces					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:117:				GetPaths					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:125:				GetDefinitions					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:133:				GetParameters					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:141:				GetResponses					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:149:				GetSecurityDefinitions				0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:157:				GetSecurity					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:165:				GetTags						0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:173:				GetExternalDocs					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:181:				GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:189:				Validate					98.0%
github.com/speakeasy-api/openapi/swagger/swagger.go:302:				validateOperationIDUniqueness			86.7%
github.com/speakeasy-api/openapi/swagger/tag.go:30:					GetName						66.7%
github.com/speakeasy-api/openapi/swagger/tag.go:38:					GetDescription					66.7%
github.com/speakeasy-api/openapi/swagger/tag.go:46:					GetExternalDocs					0.0%
github.com/speakeasy-api/openapi/swagger/tag.go:54:					GetExtensions					0.0%
github.com/speakeasy-api/openapi/swagger/tag.go:62:					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:18:				Error						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:22:				Unwrap						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:26:				GetLineNumber					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:33:				GetColumnNumber					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:60:				NewValidationError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:71:				NewValueError					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:89:				NewSliceError					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:107:				NewMapKeyError					100.0%
github.com/speakeasy-api/openapi/validation/errors.go:125:				NewMapValueError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:150:				NewTypeMismatchError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:161:				Error						75.0%
github.com/speakeasy-api/openapi/validation/errors.go:176:				NewMissingFieldError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:182:				Error						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:192:				NewMissingValueError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:198:				Error						100.0%
github.com/speakeasy-api/openapi/validation/errors.go:208:				NewValueValidationError				100.0%
github.com/speakeasy-api/openapi/validation/errors.go:218:				Error						100.0%
github.com/speakeasy-api/openapi/validation/options.go:13:				WithContextObject				100.0%
github.com/speakeasy-api/openapi/validation/options.go:19:				NewOptions					100.0%
github.com/speakeasy-api/openapi/validation/options.go:29:				GetContextObject				100.0%
github.com/speakeasy-api/openapi/validation/utils.go:9:					SortValidationErrors				66.7%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:28:				Unmarshal					70.7%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:107:			isParentError					75.0%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:119:			hasTypeMismatchErrors				87.5%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:139:			filterChildErrors				80.0%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:150:			SyncChanges					91.9%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:221:			GetNavigableNode				100.0%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:228:			getUnwrappedErrors				85.7%
github.com/speakeasy-api/openapi/values/core/eithervalue.go:241:			typeToName					57.1%
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:95:				PopulateWithParent				69.2%
github.com/speakeasy-api/openapi/values/eithervalue.go:125:				GetNavigableNode				100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:138:				IsEqual						100.0%
github.com/speakeasy-api/openapi/values/eithervalue.go:161:				equalWithIsEqualMethod				72.2%
github.com/speakeasy-api/openapi/values/eithervalue.go:201:				isEmptyCollection				81.8%
github.com/speakeasy-api/openapi/walk/locations.go:30:					ToJSONPointer					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					0.0%
github.com/speakeasy-api/openapi/yml/config.go:62:					GetDefaultConfig				0.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:199:					EqualNodes					86.4%
github.com/speakeasy-api/openapi/yml/yml.go:246:					TypeToYamlTags					0.0%
github.com/speakeasy-api/openapi/yml/yml.go:283:					NodeTagToString					0.0%
total:											(statements)					74.2%
  • 🧪 All tests passed
  • 📈 Full coverage report available in workflow artifacts

Generated by GitHub Actions

…uthorization flow, deprecated field, oauth2MetadataUrl, and URI-based security scheme references
@TristanSpeakEasy TristanSpeakEasy changed the title [WIP] feat: Add support for 3.2.0 openapi spec feat: Add support for 3.2.0 openapi spec [WIP] Dec 9, 2025
@TristanSpeakEasy TristanSpeakEasy changed the title feat: Add support for 3.2.0 openapi spec [WIP] feat: Add support for 3.2.0 openapi spec Dec 9, 2025
}

func ParseVersion(version string) (*Version, error) {
parts := strings.Split(version, ".")
Copy link
Contributor

@danielkov danielkov Dec 9, 2025

Choose a reason for hiding this comment

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

Nit: should this support:

  • 1.1
  • 1
  • 1.1.1-beta
  • 1.1.1-xxx

Copy link
Member

Choose a reason for hiding this comment

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

for now, no I would say as the openapi versions we are working with are just x.x.x can always expand in the future if needed

@TristanSpeakEasy TristanSpeakEasy merged commit 09abb9d into main Dec 10, 2025
10 checks passed
@TristanSpeakEasy TristanSpeakEasy deleted the blake/spec-3.2 branch December 10, 2025 00:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet