{"id":"161e4315-308a-431f-a1be-8d7e937ad785","createdAt":"2026-08-15T23:21:21.219Z","runtimeVersion":"exposdk:54.0.0","launchAsset":{"key":"bundle","contentType":"application/javascript","url":"https://sproutmetro.dasbasl.xyz/node_modules/expo-router/entry.bundle?platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable"},"assets":[],"metadata":{},"extra":{"eas":{},"expoClient":{"//name":"The launcher label, and the one string with a hard length budget: iOS and Android both truncate the home-screen caption around 12 characters, so the full 'Sprout - Your vegan buddy' would render as 'Sprout - Yo…'. The name is Sprout; the tagline lives where there is room for it — the store listing, Settings → About, and the README.","name":"Sprout","//slug":"Identity, not a display name. The slug binds this project to EAS, `scheme` owns the veganchecker:// deep links, and the bundle id / package name are what a store and an installed device consider 'the same app'. Renaming them is a migration, not a rename — deliberately left alone.","slug":"veganchecker","scheme":"veganchecker","version":"0.1.0","orientation":"portrait","icon":"./assets/icon.png","//userInterfaceStyle":"Organic is a single warm ground — there is no dark variant of the design system, so the app doesn't follow the OS scheme.","userInterfaceStyle":"light","backgroundColor":"#f5ead8","newArchEnabled":true,"//platforms":"No web target. react-native-web isn't installed, so any browser hitting the Metro URL triggers a web bundle that fails on `Unable to resolve react-native-web/dist/index` — harmless for Expo Go, which asks for ios/android, but it fills the deploy log with errors that look like the app is broken. plan2.md §16 lists a web app as explicitly out of scope: the camera is the product.","platforms":["ios","android"],"ios":{"supportsTablet":true,"bundleIdentifier":"com.veganchecker.app","infoPlist":{"NSCameraUsageDescription":"Sprout uses the camera to scan barcodes and read ingredient lists."}},"android":{"package":"com.veganchecker.app","adaptiveIcon":{"backgroundColor":"#f5ead8","foregroundImage":"./assets/android-icon-foreground.png","backgroundImage":"./assets/android-icon-background.png","monochromeImage":"./assets/android-icon-monochrome.png","foregroundImageUrl":"https://sproutmetro.dasbasl.xyz/assets/./assets/android-icon-foreground.png","monochromeImageUrl":"https://sproutmetro.dasbasl.xyz/assets/./assets/android-icon-monochrome.png","backgroundImageUrl":"https://sproutmetro.dasbasl.xyz/assets/./assets/android-icon-background.png"},"predictiveBackGestureEnabled":false,"permissions":["android.permission.CAMERA","android.permission.RECORD_AUDIO"]},"plugins":["expo-router","expo-sqlite","expo-localization",["expo-camera",{"cameraPermission":"Sprout uses the camera to scan barcodes and read ingredient lists."}],"expo-font"],"extra":{"apiUrl":"http://localhost:3000","router":{}},"_internal":{"isDebug":false,"projectRoot":"/app","dynamicConfigPath":{},"staticConfigPath":"/app/app.json","packageJsonPath":"/app/package.json","pluginHistory":{"expo-sqlite":{"name":"expo-sqlite","version":"16.0.10"},"expo-camera":{"name":"expo-camera","version":"17.0.10"},"expo-font":{"name":"expo-font","version":"14.0.12"}}},"sdkVersion":"54.0.0","iconUrl":"https://sproutmetro.dasbasl.xyz/assets/./assets/icon.png","hostUri":"sproutmetro.dasbasl.xyz"},"expoGo":{"debuggerHost":"sproutmetro.dasbasl.xyz","developer":{"tool":"expo-cli","projectRoot":"/app"},"packagerOpts":{"dev":true},"mainModuleName":"node_modules/expo-router/entry"},"scopeKey":"@anonymous/veganchecker-c2a16bc4-ed1e-4ff7-8af4-cbda795695fa"}}