요소, 크기, 배열 내용 제약
items — 모든 요소의 schema
items 에는 schema 를 통째로 넣어. 배열의 모든 요소가 거기 맞아야 해. {"type": "array", "items": {"type": "string"}} 는 '문자열만 든 배열' 이라는 뜻이야.
prefixItems — 튜플 스타일 검증
prefixItems 에 schema 배열을 주면 자리별로 검사해. 0 번 자리는 첫 schema 로, 1 번 자리는 두 번째 schema 로 보는 식이야. 모양이 딱 정해진 튜플 ([latitude, longitude], [year, month, day]) 에 써. 이 앞부분을 넘어가는 요소들은 items 가 맡고, items: false 로 아예 못 붙이게 막을 수도 있어.
크기 & 고유성
minItems,maxItems— 개수의 아래위 한계를 정해.uniqueItems— boolean 이나 문자열, 숫자면 판정이 간단해. 객체는 속까지 다 비교해서 같은지 봐.contains— 적어도 요소 하나가 이 sub-schema 에 맞아야 해.
원칙: 한 종류로만 채운 배열엔
items 를 쓰고, 튜플 모양 배열 ([latitude, longitude], [r, g, b, a]) 엔 prefixItems 를 써. prefixItems 로 충분한 자리에 oneOf 나 items 를 끌어오지 마. 읽기도 더 분명하고, 몇 번째 자리가 틀렸는지도 훨씬 잘 짚어주거든.