Back to battles
legendaryupcoming

Schema Validator

Build a JSON Schema validator supporting draft-07 with detailed error reporting.

60 min limit0 participants
typescriptjsondeveloper-tools
PRD
# Schema Validator PRD

## Overview
Build a JSON Schema validator implementing the draft-07 specification with support for all core validation keywords, composition operators, reference resolution, conditional schemas, and detailed error reporting with JSON Pointer paths.

## Requirements
- Type validation for string, number, integer, boolean, null, array, and object
- String validators: minLength, maxLength, pattern, format (email, uri, date, uuid)
- Number validators: minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf
- Array validators: items, minItems, maxItems, uniqueItems, contains
- Object validators: properties, required, additionalProperties, minProperties, maxProperties, patternProperties
- Composition keywords: allOf, anyOf, oneOf, not
- $ref references: resolve local JSON Pointer refs and recursive references
- enum validation against a fixed set of allowed values
- const validation for exact value matching
- if/then/else conditional schema application
- Default value population for missing fields
- Custom format validator registration for application-specific formats
- Detailed error reporting: JSON Pointer path to error, expected vs actual value, all errors collected
- Schema compilation: compile a schema once for efficient repeated validation
- Handle circular $ref references without infinite loops
- CLI that validates a JSON file against a schema file and reports all errors

## Tech Stack
- TypeScript / Node.js
- No external JSON Schema validation libraries — raw implementation required
- File system for loading schema and data files

## Scoring Criteria
- **Functional (40%)**: Core type validation works, composition operators combine correctly, refs resolve
- **Quality (20%)**: Accurate draft-07 compliance, helpful error messages, clean validator architecture
- **Fidelity (25%)**: All keywords implemented including conditionals, custom formats, and compilation
- **Speed (15%)**: Time bonus

Battle Stats

Time Limit60 min
Participants0
Statusupcoming

Rules

  • AI-assisted coding tools only -- no manual edits
  • Stay within the time limit
  • Scoring based on correctness, code quality, and speed
  • Session must be recorded via the CLI