ENGLISH·COURSE API
    Preparing search index...
    ContentLocations: z.infer<typeof ContentLocations>

    The content-locations.json document: which store answers for which key.

    Read at RUNTIME when the dependency graph is built, never at build time. Moving an asset rewrites this file and nothing else — in particular it never rewrites the course manifests, because a content key is identity and does not change when its bytes do.

    Credentials never appear here. Bucket names, regions and CDN URLs are not secrets and belong in the tracked file; access keys come from the environment.