org.poca.amoxtli
Stories, creation myths, and oral traditions: an ePub and audiobook reader whose Codex format scrolls horizontally, the way pre-Columbian codices unfold.
| Uses | Detail |
|---|---|
| /apps/amoxtli | Card catalog. |
| /file/{path} | Card JSON, page images, audio, ePub and PDF bytes. |
| /files/{dir} | Directory listing (used to find audiobook audio). |
| app_config | Not used. |
| Deep links | poca://amoxtli/{codex|story|book|audiobook}/{card_id} |
Routing runs on the type column. A card typed codex is remapped in-app to story; both open the Codex player. book opens the reader. Anything else, including audiobook, opens the audiobook player.
content_collection is a section label for grouping the library, never a routing key. Whatever the directory tree provides (for example codices, books, audiobooks) is displayed as-is.
| Column | Notes | |
|---|---|---|
| card_id | req | Row skipped when missing. |
| type | req | codex | book | audiobook. |
| title / description | opt | Default to empty. |
| image | opt | PAC-relative path (wrapped to a file URI) or an http(s) URL passed through. |
| card_json_path | opt | PAC-relative path to the card’s detail manifest. Needed to actually open codices and books. |
| content_dir_path | opt | PAC-relative media directory; trailing slash normalized. |
| extensions_json | opt | author, duration, language (split on / or , into a language list). |
Loaded lazily from card_json_path. Unknown keys are ignored.
{
"card_id": "codex_first_sunrise", // required
"title": "…", "author": "…", // required
"narrator": "…", // optional
"coverImage": "cover.png", // required
"duration": "12 min", // required
"transitionDuration": 0.6, // required, seconds (float)
"language": "Nahuatl / English", // required
"description": "…", // required
"audioUrl": "narration.m4a", // required; bare filename resolves against content_dir_path
"type": "codex", // required
"orientation": "horizontal_right", // default; vertical* switches scroll axis
"pages": [ {
"id": "page-01", // image = {content_dir}/{id}.png
"layerX": 0, "layerWidth": 2048, // required
"audioTimestamp": 0, "duration": 14, // required, seconds
"transcript": "…" // required
} ]
}
Multi-layer parallax pages add files named {id}-layer-{n}.png; layer 0 is {id}.png itself.
Required: id, title, author, coverImage, language, description, path (the ePub or PDF filename inside content_dir_path; format detected by extension). Optional: duration (defaults to “Read”), type (defaults to book).