{"packages":{"fragjan-check-listvalues":[{"version":"0.1.3+4fda08f2","tier":"free","released":"2026-05-26","latest":{"fragjan":true},"description":"Validate table literal values against allowed or forbidden list","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}}},{"version":"0.1.2+5a1ea021","tier":"free","released":"2026-05-26","latest":{"fragjan":false},"description":"Validate table literal values against allowed or forbidden list","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}}},{"version":"0.1.1+2b52665d","tier":"free","released":"2026-05-26","latest":{"fragjan":false},"description":"Validate table literal values against allowed or forbidden list","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}}}],"fragjan-check-linecount":[{"version":"0.1.3+0338d557","tier":"free","released":"2026-05-27","latest":{"fragjan":true},"description":"fragjan primitive: count lines in a file","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}}},{"version":"0.1.1+880e75e3","tier":"free","released":"2026-05-19","latest":{"fragjan":false},"description":"fragjan primitive: count lines in a file","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}}},{"version":"0.1.0+e89ecf2d","tier":"free","released":"2026-05-18","latest":{"fragjan":false},"description":"fragjan primitive: count lines in a file","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}}}],"storage-pg":[{"version":"0.3.0+833cfe38","tier":"free","released":"2026-04-24","latest":{"openbookregister":true},"description":"PostgreSQL storage backend for DAW projects","requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17.0}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}}},{"version":"0.2.0+0531bc3c-dirty","tier":"free","released":"2026-04-24","latest":{"openbookregister":false},"description":"PostgreSQL storage backend for DAW projects","requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17.0}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}}},{"version":"0.2.0+e6c1a475","tier":"free","released":"2026-04-13","latest":{"openbookregister":false},"description":"PostgreSQL storage backend for DAW projects","requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}}},{"version":"0.1.1+cd594238","tier":"free","released":"2026-04-12","latest":{"openbookregister":false},"description":"PostgreSQL storage backend for DAW projects","requires":{"system":{"psql":{"min":17},"libpq":{"min":17}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}}},{"version":"0.1.0+e9622390-dirty","tier":"free","released":"2026-04-12","latest":{"openbookregister":false},"description":"PostgreSQL storage backend for DAW projects","requires":{"system":{}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}}}],"tax-calc":[{"version":"0.1.1+ace89389","tier":"free","released":"2026-05-01","latest":{"kaupapi":true,"steurjan":true,"stapul":true,"raidjan":true},"description":"Decimal-accurate net/gross price calculation for DAW systems","requires":{"system":[]},"supports":{"kaupapi":{"min":"0.1.0","max":"<2.0.0"},"steurjan":{"min":"0.1.0","max":"<2.0.0"},"stapul":{"min":"0.1.0","max":"<2.0.0"},"raidjan":{"min":"0.1.0","max":"<2.0.0"}}},{"version":"0.1.0+3097a54a","tier":"free","released":"2026-05-01","latest":{"steurjan":false},"description":"One-line description","requires":{"system":[]},"supports":{"steurjan":{"min":"1.0.0","max":"<2.0.0"}}}],"product":[{"version":"0.2.0+69bf06a6","tier":"free","released":"2026-05-03","latest":{"raidjan":true,"steurjan":true,"stapul":true,"kaupapi":true,"redan":true},"description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","requires":{"system":[]},"supports":{"raidjan":{"min":"0.1.0","max":"<2.0.0"