{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://quantumsoftware.tech/schemas/nm-model-package-0.1.schema.json","title":"N/M Model Package 0.1","type":"object","required":["formatVersion","kind","name","createdAt","languageVersion","source","trainedParams","training","environment","integrity"],"properties":{"formatVersion":{"const":"0.1"},"kind":{"const":"nm-model"},"name":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"createdAt":{"type":"string","format":"date-time"},"languageVersion":{"type":"string","pattern":"^\\d+\\.\\d+(?:\\.\\d+)?(?:[-+][0-9A-Za-z.-]+)?$"},"source":{"type":"string"},"trainedParams":{"type":"object","minProperties":1,"maxProperties":8,"propertyNames":{"pattern":"^[A-Za-z_]\\w{0,127}$"},"additionalProperties":{"type":"number"}},"training":{"type":"object","required":["optimizer","steps","learningRate","objective","costHistory","finalCost"],"additionalProperties":false,"properties":{"optimizer":{"enum":["gd","momentum","adam","spsa","qng"]},"steps":{"type":"integer","minimum":1,"maximum":100},"learningRate":{"type":"number","exclusiveMinimum":0,"maximum":5},"objective":{"enum":["minimize","maximize"]},"loss":{"enum":["mse","hinge","cross_entropy"]},"datasetId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"costHistory":{"type":"array","minItems":1,"maxItems":101,"items":{"type":"number"}},"finalCost":{"type":"number"},"accuracy":{"type":"number","minimum":0,"maximum":1},"seed":{"type":"integer","minimum":0,"maximum":4294967295}}},"environment":{"type":"object","required":["engine","qubits"],"additionalProperties":false,"properties":{"engine":{"const":"statevector"},"qubits":{"type":"integer","minimum":1,"maximum":14},"noise":{"type":"object","required":["model","probability"],"additionalProperties":false,"properties":{"model":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"probability":{"type":"number","minimum":0,"maximum":1}}}}},"integrity":{"type":"object","required":["algorithm","sourceHash","packageHash"],"additionalProperties":false,"properties":{"algorithm":{"const":"fnv1a-64"},"sourceHash":{"type":"string","pattern":"^[0-9a-f]{16}$"},"packageHash":{"type":"string","pattern":"^[0-9a-f]{16}$"}}}},"additionalProperties":false}