{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://solaranalytica.com/global-solar-memory/schema.json","title":"Global Solar Performance Memory public contract","type":"object","required":["schemaVersion","methodVersion","programmeKey","title","editionVersion","status","reason","publicEditionCount","firstCaptureAt","latestCaptureAt","message","cohort","sources","lenses","boundaries","downloads","observations"],"properties":{"schemaVersion":{"const":"global-solar-memory-v1"},"methodVersion":{"const":"global-solar-memory-v1"},"programmeKey":{"const":"global-solar-performance-memory-v1"},"title":{"const":"Global Solar Performance Memory"},"editionVersion":{"type":"string"},"status":{"enum":["available","unavailable"]},"reason":{"oneOf":[{"type":"null"},{"enum":["no-public-edition","public-ledger-unavailable","source-receipts-incomplete","source-revision-unresolved","manual-promotion-required","method-break"]}]},"publicEditionCount":{"type":["integer","null"],"minimum":0},"firstCaptureAt":{"type":["string","null"],"format":"date-time"},"latestCaptureAt":{"type":["string","null"],"format":"date-time"},"message":{"type":"string"},"cohort":{"type":"array","minItems":10,"maxItems":10,"items":{"type":"object","required":["code","name"],"properties":{"code":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false}},"lenses":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"object","required":["key","label","description"],"properties":{"key":{"enum":["published-then","observed-then","corrected-now"]},"label":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false}},"sources":{"type":"array","minItems":1,"items":{"type":"object","required":["key","label","role"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"role":{"type":"string"}},"additionalProperties":false}},"boundaries":{"type":"array","minItems":1,"items":{"type":"string"}},"downloads":{"type":"object","required":["json","csv","schema"],"properties":{"json":{"const":"/global-solar-memory/data.json"},"csv":{"const":"/global-solar-memory/data.csv"},"schema":{"const":"/global-solar-memory/schema.json"}},"additionalProperties":false},"observations":{"type":"array","items":{"type":"object","required":["marketCode","observationStart","observationEnd","retrievedAt","metricKey","value","missingReason","evidenceClass","methodVersion","receiptHash"],"properties":{"observationId":{"type":["string","null"]},"editionVersion":{"type":["string","null"]},"observationKey":{"type":["string","null"]},"captureKey":{"type":["string","null"]},"runKey":{"type":["string","null"]},"marketCode":{"type":["string","null"]},"marketName":{"type":["string","null"]},"temporalResolution":{"type":["string","null"]},"observationStart":{"type":["string","null"],"format":"date"},"observationEnd":{"type":["string","null"],"format":"date"},"publisherReleaseAt":{"type":["string","null"],"format":"date-time"},"retrievedAt":{"type":["string","null"],"format":"date-time"},"publishedAt":{"type":["string","null"],"format":"date-time"},"sourceMetricKey":{"type":["string","null"]},"metricKey":{"type":["string","null"]},"value":{"type":["number","null"]},"priorValue":{"type":["number","null"]},"missingReason":{"oneOf":[{"type":"null"},{"enum":["source-absent","source-reported-null","derived-input-unavailable"]}]},"unit":{"type":["string","null"]},"evidenceClass":{"type":["string","null"]},"confidence":{"type":["string","null"]},"basis":{"type":["string","null"]},"methodVersion":{"type":["string","null"]},"sourceVersion":{"type":["string","null"]},"receiptHash":{"type":["string","null"]},"sourceUrl":{"type":["string","null"],"format":"uri"},"changeClass":{"type":["string","null"]},"interpretationStatus":{"type":["string","null"]},"comparisonBasis":{"type":["string","null"]},"absoluteDelta":{"type":["number","null"]},"relativeDeltaPct":{"type":["number","null"]},"percentagePointDelta":{"type":["number","null"]},"notes":{"type":["string","null"]}},"additionalProperties":false}}},"additionalProperties":false,"allOf":[{"if":{"properties":{"reason":{"const":"public-ledger-unavailable"}},"required":["reason"]},"then":{"properties":{"status":{"const":"unavailable"},"editionVersion":{"const":"not-verified"},"publicEditionCount":{"const":null},"observations":{"maxItems":0}}},"else":{"if":{"properties":{"status":{"const":"unavailable"}},"required":["status"]},"then":{"properties":{"editionVersion":{"const":"no-public-edition"},"publicEditionCount":{"const":0},"observations":{"maxItems":0}}},"else":{"properties":{"publicEditionCount":{"type":"integer","minimum":1},"observations":{"type":"array","minItems":1}}}}}]}