{"packages":{"fragjan-check-list-values":[{"requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":true},"tier":"free","released":"2026-05-26","description":"Validate table literal values against allowed or forbidden list","version":"0.1.0+61e08ab6"}],"fragjan-check-linecount":[{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":true},"tier":"free","released":"2026-05-27","description":"fragjan primitive: count lines in a file","version":"0.1.3+0338d557"},{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"tier":"free","released":"2026-05-19","description":"fragjan primitive: count lines in a file","version":"0.1.1+880e75e3"},{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"tier":"free","released":"2026-05-18","description":"fragjan primitive: count lines in a file","version":"0.1.0+e89ecf2d"}],"fragjan-check-exists":[{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":true},"tier":"free","released":"2026-05-27","description":"fragjan primitive: check if a file or directory exists in a project","version":"0.1.3+981615c3"},{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"tier":"free","released":"2026-05-27","description":"fragjan primitive: check if a file or directory exists in a project","version":"0.1.2+89db1135"},{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"tier":"free","released":"2026-05-23","description":"fragjan primitive: check if a file or directory exists in a project","version":"0.1.1+d6d3ba9a"},{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"tier":"free","released":"2026-05-19","description":"fragjan primitive: check if a file or directory exists in a project","version":"0.1.0+6ea950a6"}],"fragjan-check-linepattern":[{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":true},"tier":"free","released":"2026-05-27","description":"fragjan primitive: match pattern on a line, with optional line-level exclusion","version":"0.1.2+5920794a"},{"requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":false},"tier":"free","released":"2026-05-26","description":"fragjan primitive: match pattern on a line, with optional line-level exclusion","version":"0.1.1+09b9c01b"}],"storage-pg":[{"requires":{"system":{"pg-backend":{"one-of":{"lua-sql-postgresql":{"min":2.6},"pgmoon":{"min":1.12}}},"postgresql":{"min":17.0}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}},"latest":{"openbookregister":true},"tier":"free","released":"2026-04-24","description":"PostgreSQL storage backend for DAW projects","version":"0.3.0+833cfe38"},{"requires":{"system":{"pg-backend":{"one-of":{"lua-sql-postgresql":{"min":2.6},"pgmoon":{"min":1.12}}},"postgresql":{"min":17.0}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}},"latest":{"openbookregister":false},"tier":"free","released":"2026-04-24","description":"PostgreSQL storage backend for DAW projects","version":"0.2.0+0531bc3c-dirty"},{"requires":{"system":{"pg-backend":{"one-of":{"lua-sql-postgresql":{"min":2.6},"pgmoon":{"min":1.12}}},"postgresql":{"min":17}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}},"latest":{"openbookregister":false},"tier":"free","released":"2026-04-13","description":"PostgreSQL storage backend for DAW projects","version":"0.2.0+e6c1a475"},{"requires":{"system":{"psql":{"min":17},"libpq":{"min":17}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}},"latest":{"openbookregister":false},"tier":"free","released":"2026-04-12","description":"PostgreSQL storage backend for DAW projects","version":"0.1.1+cd594238"},{"requires":{"system":{}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}}