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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants