{"manifestVersion":"1","app":{"name":"attendance","version":"0.9.24","status":"live"},"actions":[{"id":"system.attendance.wellknown.capabilities.v1","title":"The attendance capabilities manifest: metadata, callable actions with schemas, public routes, emitted events, and model field catalogs. Public metadata only — a manifest never carries tenant rows.","route":"/.well-known/capabilities","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"manifestVersion":{"type":"string","const":"1"},"app":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"version":{"type":"string","minLength":1},"status":{"type":"string","enum":["live","degraded"]}},"required":["name","version","status"],"additionalProperties":false},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^system\\.[a-z0-9]+(-[a-z0-9]+)*\\.[a-z0-9]+(-[a-z0-9]+)*\\.[a-z0-9]+(-[a-z0-9]+)*\\.v[1-9][0-9]*$"},"title":{"type":"string","minLength":1},"route":{"type":"string","pattern":"^\\/"},"inputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"outputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","title","inputSchema","outputSchema"],"additionalProperties":false}},"functionalities":{"type":"object","properties":{"publicRoutes":{"type":"array","items":{"type":"string","pattern":"^\\/"}},"auth":{"type":"object","properties":{"issuer":{"type":"string","format":"uri"},"authorizationEndpoint":{"type":"string","format":"uri"},"tokenEndpoint":{"type":"string","format":"uri"},"jwksUri":{"type":"string","format":"uri"}},"required":["issuer"],"additionalProperties":false},"webhooks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["publicRoutes","webhooks"],"additionalProperties":false},"events":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9][a-z0-9.-]*[a-z0-9]$"},"title":{"type":"string","minLength":1},"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["name","title","schema"],"additionalProperties":false}},"models":{"type":"object","propertyNames":{"type":"string","minLength":1},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","minLength":1},"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"excluded":{"type":"array","items":{"type":"string","minLength":1}}},"required":["title","schema","excluded"],"additionalProperties":false}}},"required":["manifestVersion","app","actions","functionalities","events"],"additionalProperties":false}}],"functionalities":{"publicRoutes":[],"webhooks":[]},"events":[{"name":"attendance.day.judged","title":"attendance: day judged","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"personId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"status":{"type":"string","enum":["present","absent","late","early_leave","half_day","on_leave","holiday","weekly_off","no_schedule","incomplete"]},"isFinal":{"type":"boolean"},"policyId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"policyVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"judgedAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["orgId","personId","date","status","isFinal","policyId","policyVersion","judgedAt","revision"],"additionalProperties":false}}],"models":{"policy":{"title":"Attendance policy fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"version":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"supersedesId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","version","supersedesId","isActive","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","definition","createdBy"]},"group":{"title":"Attendance group fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId"]},"leave-type":{"title":"Leave-type fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"allowanceDays":{"anyOf":[{"type":"integer","minimum":-2147483648,"maximum":2147483647},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","allowanceDays","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId"]},"day-result":{"title":"Daily verdict fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"personId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"date":{"type":"string"},"status":{"type":"string"},"expectedMinutes":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"workedMinutes":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"breakMinutes":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"lateByMinutes":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"earlyByMinutes":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"arrivedLate":{"type":"boolean"},"policyId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"policyVersion":{"anyOf":[{"type":"integer","minimum":-2147483648,"maximum":2147483647},{"type":"null"}]},"isFinal":{"type":"boolean"},"computedAt":{"type":"string","format":"date-time"},"revision":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"approvedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"overrideStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"overrideAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","personId","date","status","expectedMinutes","workedMinutes","breakMinutes","lateByMinutes","earlyByMinutes","arrivedLate","policyId","policyVersion","isFinal","computedAt","revision","approvedAt","overrideStatus","overrideAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","provisionalReason","evidence","approvedBy","overrideReason","overrideBy"]}}}