at: "npcs": { "$ref": "#/definitions/NpcEntry" }

change "npcs" to "items". npcs is not a valid keyword so it is ignored. The only validation that is happening is at the top level, verifying that the data is an object and that the one property is an array.

Answer from Ether on Stack Overflow
🌐
PyPI
pypi.org › project › schema
schema · PyPI
Schema({}) becomes · {'type': 'object', 'properties' : {}, 'required': [], 'additionalProperties': False} Types · Use the Python type name directly. It will be converted to the JSON name: str -> string · int -> integer · float -> number · bool -> boolean · list -> array ·
      » pip install schema
    
Published   Oct 11, 2025
Version   0.7.8
🌐
JSON Schema
json-schema.org › understanding-json-schema › reference › array
JSON Schema - array
Arrays are used for ordered elements. In JSON, each element in an array may be of a different type. ... In Python, "array" is analogous to the list or tuple type, depending on usage.
🌐
GitHub
github.com › Julian › jsonschema › issues › 282
Items in array not validated · Issue #282 · python-jsonschema/jsonschema
I've been testing jsonschema to see if it will work my Python based API testing. I've hit a road block trying to figure out why this particular array is not being validated at all. It should be throwing a variety of failures, but does not. I've seen other arrays processed correctly but am not seeing why this specific one is not. import jsonschema schema = { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "pushNotifDevices" : { "type": "array", "description" : "", "items": { "applicationId": { "type": "boolean", "example":"CTS", "description":"This application ID identifies."
🌐
Built In
builtin.com › software-engineering-perspectives › python-json-schema
How to Use JSON Schema to Validate JSON Documents in Python | Built In
This JSON Schema specifies that the target JSON is an object with two properties, which are also commonly referred to as keys/fields and will be used accordingly, and the name property is required. Let’s dive a bit deeper into each validation keyword: The type keyword specifies that the target JSON is an object. It can also be an array, which is normally an array of objects for API responses.
🌐
Polars
docs.pola.rs › api › python › dev › reference › schema › index.html
Schema — Polars documentation
} ... ) >>> schema Schema({'foo': String, 'bar': Duration(time_unit='us'), 'baz': Array(Int8, shape=(4,))})
🌐
Apache Arrow
arrow.apache.org › cookbook › py › schema.html
Working with Schema — Apache Arrow Python Cookbook documentation
import pyarrow as pa arr = pa.array([1, 2, 3, 4, 5]) print(arr.type) ... Tables detain multiple columns, each with its own name and type. The union of types and names is what defines a schema.
🌐
Readthedocs
python-jsonschema-objects.readthedocs.io › en › latest › Introduction.html
What — Python JSONSchema Objects 0.0.18 documentation
Literal values are wrapped when constructed to support validation and other schema-related operations. However, you can still use them just as you would other literals. >>> import python_jsonschema_objects as pjs >>> builder = pjs.ObjectBuilder(examples['Example Schema']) >>> ns = builder.build_classes() >>> Person = ns.ExampleSchema >>> james = Person(firstName="James", lastName="Bond") >>> str(james.lastName) 'Bond' >>> james.lastName += "ing" >>> str(james.lastName) 'Bonding' >>> james.age = 4 >>> james.age - 1 3 >>> 3 + james.age 7 >>> james.lastName / 4 Traceback (most recent call last): ...
🌐
Cswr
cswr.github.io › JsonSchema › spec › arrays
Arrays - JSON Schema
Let A be an Array Schema and J a JSON document. We say that J validates against A if for each key:value pair k in A one of the following holds: k is "items": S' and J is an array such that every element validates against S'.
Find elsewhere
🌐
DEV Community
dev.to › stefanalfbo › python-json-schema-3o7n
Python JSON schema - DEV Community
May 9, 2024 - { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "url": { "type": "string", "format": "uri" }, "username": { "type": "string" }, "email": { "type": "string", "format": "email" }, "groups": { "type": "array", "items": {} } } }
🌐
Opis
opis.io › json-schema › 2.x › array.html
Array type | Opis JSON Schema
An array is valid against this keyword if all unchecked items are valid against the schema defined by the keyword value. An item is considered unchecked if items keyword or prefixItems keyword (starting with draft 2020-12) contains an array of schemas and doesn’t have a corresponding position (index).
🌐
Cswr
cswr.github.io › JsonSchema › spec › multiple_types
Multiple Types - JSON Schema
multSch := multRes (, multRes)* multRes := type | strRes | numRes | arrRes | objRes type := "type" : [typename (, typename)*] typename := "string" | "integer" | "number" | "boolean" | "null" | "array" | "object" Where as usual each of the words replaced for the multRes tokens is unique. We define the function Compatible(J,k) that takes a JSON document J and a key/value pair k of the form key: value and returns true if key is a string in the following list: and key is compatible to the type of J according to the compatibility table above. Otherwise, Compatible(J,k) returns false. Let M be a multiple type Schema and J a JSON document.
🌐
jsonschema
python-jsonschema.readthedocs.io › en › stable › validate
Schema Validation - jsonschema 4.26.0 documentation
Most of the documentation for this package assumes you’re familiar with the fundamentals of writing JSON schemas themselves, and focuses on how this library helps you validate with them in Python.
🌐
Frictionlessdata
framework.frictionlessdata.io › docs › fields › array.html
Array Field | Frictionless Framework
from frictionless import Schema, extract, fields data = [['name'], ['["value1", "value2"]']] rows = extract(data, schema=Schema(fields=[fields.ArrayField(name='name')])) print(rows)
🌐
Apache Arrow
arrow.apache.org › docs › python › data.html
Data Types and In-Memory Data Model — Apache Arrow v23.0.1
The Schema type is similar to the struct array type; it defines the column names and types in a record batch or table data structure. The pyarrow.schema() factory function makes new Schema objects in Python:
🌐
Apache Pulsar
pulsar.apache.org › work with schema
Work with schema | Apache Pulsar
All the fields are specified in the pulsar.schema package. The fields are matching the AVRO field types. Additionally, any Python Enum type can be used as a valid field type. When adding a field, you can use these parameters in the constructor. class Example(Record): a = String() b = Integer() c = Array(String()) i = Map(String())
🌐
JSON Schema
json-schema.org › understanding-json-schema › reference › type
JSON Schema - Type-specific Keywords
[1] Since JSON strings always support unicode, they are analogous to unicode on Python 2.x and str on Python 3.x. [2] JSON does not have separate types for integer and floating-point. ... A single string. When it is a single string, it must be one of the types mentioned above (array, boolean, integer, number, null, object, regular expressions, or string).