{
  "$schema":"https://json-schema.org/draft/2020-12/schema",
  "$id":"https://compo.kluchna24.ru/schemas/compo-creative-engine/v1/deterministic-metrics.schema.json",
  "title":"COMPO deterministic image metrics v1",
  "type":"object","additionalProperties":false,
  "required":["schema","metrics_id","asset_ref","coordinate_space","metrics","provenance"],
  "properties":{
    "schema":{"const":"compo-creative-engine/v1/deterministic-metrics"},
    "metrics_id":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_.:-]{7,127}$"},
    "asset_ref":{"type":"string","minLength":1,"maxLength":256},
    "coordinate_space":{"const":"pixel_top_left_v1"},
    "metrics":{"type":"array","minItems":1,"maxItems":128,"items":{"$ref":"#/$defs/metric"}},
    "provenance":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/provenance"}}
  },
  "$defs":{
    "metric":{"type":"object","additionalProperties":false,"required":["metric_id","family","name","status","owner","unit","value","provenance_ref"],"properties":{"metric_id":{"type":"string","minLength":1},"family":{"type":"string","enum":["geometry","color","contrast","edge","whitespace"]},"name":{"type":"string","minLength":1},"status":{"type":"string","enum":["measured","na","unknown"]},"owner":{"const":"deterministic_metrics"},"unit":{"type":"string","enum":["px","ratio","count","degrees","hex","boolean","none"]},"value":{"type":["number","integer","string","boolean","null","object","array"]},"sample_scope":{"type":"string","enum":["whole_image","region","element","pair","unknown"]},"region":{"$ref":"#/$defs/region"},"provenance_ref":{"type":"string","minLength":1},"notes":{"type":"string","maxLength":500}}},
    "region":{"type":"object","additionalProperties":false,"required":["x","y","width","height"],"properties":{"x":{"type":"number","minimum":0},"y":{"type":"number","minimum":0},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}}},
    "provenance":{"type":"object","additionalProperties":false,"required":["ref","method","status"],"properties":{"ref":{"type":"string","minLength":1},"method":{"type":"string","enum":["pixel_scan","connected_components","histogram","luminance_formula","edge_operator","geometry_parser"]},"status":{"type":"string","enum":["derived","unknown"]},"parameters":{"type":"object"},"source_refs":{"type":"array","items":{"type":"string"}}}}
  }
}
