{"size": 985, "ext": "scrbl", "max_stars_repo_path": "scribblings/command-schema.scrbl", "max_stars_repo_name": "yurkobb/argo", "max_stars_repo_stars_event_min_datetime": "2017-08-26T13:27:14.000Z", "max_stars_repo_stars_event_max_datetime": "2021-11-26T10:50:00.000Z", "max_issues_repo_path": "scribblings/command-schema.scrbl", "max_issues_repo_name": "yurkobb/argo", "max_issues_repo_issues_event_min_datetime": "2017-08-29T22:14:30.000Z", "max_issues_repo_issues_event_max_datetime": "2021-05-14T03:54:28.000Z", "max_forks_repo_path": "scribblings/command-schema.scrbl", "max_forks_repo_name": "yurkobb/argo", "max_forks_repo_forks_event_min_datetime": "2017-08-30T14:38:55.000Z", "max_forks_repo_forks_event_max_datetime": "2021-05-03T19:31:29.000Z"}
{"max_stars_count": 11, "max_issues_count": 7, "max_forks_count": 3, "avg_line_length": 29.8484848485, "max_line_length": 240, "alphanum_fraction": 0.723857868}
#lang scribble/manual

@require[@for-label[racket/base
		    json]]

@title{@tt{schema}}

The @tt{schema} command takes a JSON file as input and checks that it is a schema. (Recall that ``schema'' for Argo is ``draft 06 schema''.)

Run it like this:

@verbatim{
raco argo schema schema.json
}

The output will tell you whether @tt{schema.json} really is a JSON Schema.

@bold{Exit code}

@tt{schema} exits cleanly (with code 0) provided:

@itemlist[
  @item{exactly one argument, @tt{schema.json}, was supplied to it,}
  @item{@tt{schema.json} exists and is a file, and}
  @item{@tt{schema.json} is well-formed JSON.}
]

(Though see below for a way in which the exit code may be non-zero even if all these conditions are met.)

@bold{Options}

@tt{schema} accepts only one option, @tt{quiet}, which, if set, will cause all output to be suppressed. By default, this option is unset. In such a case, the exit code will be your only indication about whether your JSON really is a schema.
