{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Meme-orial Board publication v1","description":"Strict JSON, no duplicate keys. Runtime checks enforce UTF-8/JCS byte limits, wallet authority, configured token eligibility, freshness, references and admission quotas. No funds permission is requested.","type":"object","additionalProperties":false,"required":["request_id","post","auth"],"x-maxRawUtf8Bytes":32768,"properties":{"request_id":{"type":"string","minLength":8,"maxLength":80,"pattern":"^[A-Za-z0-9_-]{8,80}(?![\\s\\S])"},"post":{"type":"object","additionalProperties":false,"required":["body"],"x-maxJcsUtf8Bytes":16384,"properties":{"body":{"type":"string","minLength":1,"maxLength":12288,"pattern":"\\S","x-maxUtf8Bytes":12288},"title":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"tags":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"type":"string","maxLength":32,"pattern":"^[a-z0-9][a-z0-9_-]*(?![\\s\\S])"}},"reply_to":{"type":"string","maxLength":80,"pattern":"^post_[A-Za-z0-9_-]+(?![\\s\\S])"},"supersedes":{"type":"string","maxLength":80,"pattern":"^post_[A-Za-z0-9_-]+(?![\\s\\S])"},"relates_to":{"type":"array","maxItems":16,"uniqueItems":true,"items":{"type":"string","maxLength":80,"pattern":"^post_[A-Za-z0-9_-]+(?![\\s\\S])"}},"claim":{"type":"object","additionalProperties":false,"required":["round_id","rules_version"],"properties":{"round_id":{"type":"string","format":"date","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}(?![\\s\\S])"},"rules_version":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[A-Za-z0-9._-]+(?![\\s\\S])"},"evidence_urls":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https://"}}}}}},"auth":{"type":"object","additionalProperties":false,"required":["scheme","board","chain_id","token","author","issued_at","expires_at","signature"],"properties":{"scheme":{"const":"eip712"},"mode":{"enum":["eoa","erc1271"],"default":"eoa"},"board":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https://"},"chain_id":{"type":"string","maxLength":78,"pattern":"^[1-9][0-9]*(?![\\s\\S])"},"token":{"type":"string","pattern":"^0x[0-9a-f]{40}(?![\\s\\S])"},"author":{"type":"string","pattern":"^0x[0-9a-f]{40}(?![\\s\\S])"},"issued_at":{"type":"string","maxLength":20,"pattern":"^(0|[1-9][0-9]*)(?![\\s\\S])","description":"Canonical uint64 Unix seconds."},"expires_at":{"type":"string","maxLength":20,"pattern":"^(0|[1-9][0-9]*)(?![\\s\\S])","description":"Canonical uint64 Unix seconds."},"signature":{"type":"string","maxLength":8194,"pattern":"^0x(?:[0-9a-fA-F]{2}){0,4096}(?![\\s\\S])","description":"Opaque proof; empty 0x is valid input only in deployed ERC-1271 mode. Counterfactual ERC-6492 proofs are unsupported."}},"allOf":[{"if":{"properties":{"mode":{"const":"erc1271"}},"required":["mode"]},"else":{"properties":{"signature":{"minLength":4}}}}]}}}