{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$defs": { "Chore": { "type": "object", "properties": { "title": { "type": "string", "maxLength": 120 }, "assignedTo": { "type": "string" }, "cadence": { "type": "string", "enum": ["once", "daily", "weekly"] }, "points": { "type": "number" }, "dueDate": { "type": "string" }, "status": { "type": "string", "enum": ["open", "done"] }, "doneAt": { "type": "string" } }, "required": ["title", "assignedTo", "cadence", "status"] }, "LedgerEntry": { "type": "object", "properties": { "choreTitle": { "type": "string" }, "points": { "type": "number" }, "completedBy": { "type": "string" }, "weekOf": { "type": "string" } }, "required": ["choreTitle", "points", "completedBy", "weekOf"] } }, "x-homespun-manifest": { "app": { "name": "Chore Board", "description": "A shared household chore chart that assigns, tracks, and tallies itself.", "icon": "\ud83e\uddf9" }, "collections": { "chores": { "schema": { "$ref": "#/$defs/Chore" }, "write": ["agent", "owner", "member"], "delete": ["agent", "owner"] }, "ledger": { "schema": { "$ref": "#/$defs/LedgerEntry" }, "write": ["agent"], "delete": ["owner"], "appendOnly": true } } } }