org.poca.tlalli
Land and nature field guide: plants, animals, minerals, and places, with offline trails, maps, and field audio. Ships without the INTERNET permission.
| Uses | Detail |
|---|---|
| /apps/tlalli | Specimen catalog. |
| /config/tlalli | Provisioning gate only (enabled); config_json is captured but not yet consumed. |
| /index | tribe_name powers the home header (“Land of the …”); pac_version invalidates the map tile cache. |
| /file/{path} and /files/{dir} | All media, manifests, trails, and tiles. |
| /featured | Not queried; featuring is filtered client-side from the featured column. |
| Deep links | poca://tlalli/{type}/{card_id} (the type segment is cosmetic; resolution is by card_id) and poca://tlalli/hike/active. |
Four wire types map to the app’s kingdoms: plant (flora), animal (fauna), mineral (geology), location (places). Rows with any other type are dropped. Minerals get their own catalogue treatment; only locations with coordinates offer directions.
Required: card_id, type, title; unusable rows are skipped silently. Optional: description, image_uri / image / image_thumbnail / image_hero, label (scientific name), locale, featured (“1” or “true”), updated_at, card_json_path, content_dir_path. Inside extensions_json:
| Key | Shape | Used for |
|---|---|---|
| coordinates | “lat,lng”, range-validated | Puts the specimen on the map; enables directions for locations. |
| region / habitat | string | Detail rows; both are searchable. |
| traditional_uses | array or comma string | Detail list. |
| seed_color | hex color | Accent tinting. |
| anything else | string map | Preserved in an extras map, nothing lost. |
Search matches title, label, region, and habitat (case- and diacritic-insensitive), so fill those in for discoverability.
sections[] {heading, body} for prose, and recordings[] for field audio: title, file (relative to content_dir_path), optional waveform sidecar (a JSON array of ~120 floats 0..1; a deterministic placeholder renders when absent), recorded_at, recorded_location (“lat,lng”), recorded_place, duration_seconds. A gallery array is parsed but not rendered yet; don’t rely on it displaying. Any card type may carry audio.
| Path | Purpose |
|---|---|
| nature/{slug}/cover.jpg | Card cover. |
| nature/{slug}/card.json | Detail manifest. |
| nature/{slug}/audio/… | Field recordings (+ optional .wave.json sidecars). |
| nature/trails/{dir}/trail.json + cover.jpg | Trail definitions, discovered by directory listing. |
| nature/map/map_manifest.json | Regional tile manifest. |
| nature/map/region.pmtiles | High-detail regional tiles (SHA-256 verified; re-fetched when pac_version changes). The continent basemap ships inside the APK. |
trail.json: requires trail_id, name, and a GeoJSON LineString route with at least two [lng,lat] points; optional difficulty (easy | moderate | hard), length_m, est_duration_min, elevation_gain_m, description, region, locale, and lenient waypoints[] {id, order, name, card_id, lat, lng, radius_m (40), snippet}.
map_manifest.json: schema_version, format (pmtiles), file (region.pmtiles), name, bounds [W,S,E,N], min_zoom (7), max_zoom (15), size_bytes, sha256, version, attribution.