{ "$schema": "https://json-schema.org/draft/2019-09/schema", "title": "Joystream KPI schema", "type": "object", "required": ["overviewSection", "sections"], "properties": { "overviewSection": { "type": "object", "required": [ "title", "kpisNumber", "councilElectedInRound", "councilMembers", "termLength", "termSummariesForumThread", "deadlineToSubmitSummary" ], "properties": { "title": {"type": "string"}, "kpisNumber": {"type": "string"}, "councilElectedInRound": {"type": "number"}, "councilMembers": {"type": "number"}, "termLength": { "type": "object", "required": [ "termLength", "startBlock", "endBlock", "startDate", "endDate" ], "properties": { "termLength": {"type": "string"}, "startBlock": {"type": "number"}, "endBlock": {"type": "number"}, "startDate": {"type": "string", "format": "date"}, "endDate": {"type": "string", "format": "date"} }, "termSummariesForumThread": {"type": "string"}, "deadlineToSubmitSummary": { "type": "object", "required": ["block", "deadlineDate"], "properties": { "block": {"type": "number"}, "deadlineDate": {"type": "string", "format": "date"} } } } } }, "sections": { "type": "array", "minItems": 1, "items": { "type": "object", "required": ["sectionTitle", "sectionDescription", "kpis"], "properties": { "sectionTitle": {"type": "string"}, "sectionDescription": {"type": "string"}, "kpis": { "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "kpiTitle", "reward", "active", "purpose", "scopeOfWork", "rewardDistribution", "note", "grading" ], "properties": { "kpiTitle": {"type": "string"}, "reward": { "type": "object", "required": ["rewardLine", "rewardDescription"], "properties": { "rewardLine": {"type": "string"}, "rewardDescription": {"type": "string"} } }, "rewardStructure": { "const": "Individual" }, "gradingProcess": {"type": "string"}, "active": { "type": "object", "required": ["active", "activeDate", "block"], "properties": { "active": {"type": "string"}, "block": {"type": "number"}, "activeDate": {"type": "string", "format": "date"} } }, "purpose": {"type": "string"}, "scopeOfWork": { "type": "array", "items": { "type": "object", "required": ["task"], "properties": { "task": {"type": "string"} } } }, "rewardDistribution": {"type": "string"}, "note": {"type": "string"}, "grading": {"type": "string"}, "reporting": {"type": "string"}, "weighting": { "type": "array", "items": { "type": "object", "required": ["weight"], "properties": { "weight": {"type": "string"} } } } } } } } } } } }