Implement JSON Schema support for ktmidi-ci module #100
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
JSON Schema Support Implementation for ktmidi-ci
This PR implements comprehensive JSON Schema support for the
ktmidi-ci
module following the JSON Schema Draft 2020-12 specification.🎯 Overview
Added a complete JSON Schema API in the
dev.atsushieno.ktmidi.ci.jsonschema
package that integrates seamlessly with the existing MIDI-CI property exchange system and device configuration.🚀 Features Implemented
Core JSON Schema Classes
Supported Validation Keywords
null
,boolean
,object
,array
,number
,string
,integer
properties
,required
,additionalProperties
,minProperties
,maxProperties
items
,minItems
,maxItems
,uniqueItems
minLength
,maxLength
,pattern
,format
minimum
,maximum
,exclusiveMinimum
,exclusiveMaximum
enum
,const
title
,description
,default
,examples
🔧 Integration Points
Existing System Integration
Json.JsonValue
for schema representation and validationMidiCIDeviceConfiguration.jsonSchemaString
propertyJsonParserException
and@Serializable
classesUsage Examples
🧪 Testing
Comprehensive Test Suite
JsonTest.kt
Build Verification
./gradlew :ktmidi-ci:compileKotlinJvm
📁 File Structure
🎨 Design Principles
Json.JsonValue
and serialization infrastructure🔗 Related
PropertyCommonRules.kt
MidiCIDeviceConfiguration
schema validation capabilitiesJson.kt
parsing and serializationLink to Devin run: https://app.devin.ai/sessions/cee16ac818b34fdd8a5db07189691483
Requested by: Atsushi Eno ([email protected])