# NEXT Athlete OS · Proposed Data Schema

## Current state
`data.js` is row-based. Each row represents an exercise occurrence inside a pass/session. This is simple to render, but less ideal for admin editing and video management.

## Target model
```js
programs[]
  id
  ageGroupId
  levelId
  phases[]
    id
    weeks[]
      weekNumber
      sessions[]
        sessionId
        day
        title
        focusTags[]
        blocks[]
          blockId
          type // warmup, explosive, strength, circuit, cooldown
          groups[]
            groupId
            mode // superset, circuit, single
            exercises[]
              exerciseId
              doseRef
              videoId
              equipmentIds[]
```

## Exercise registry
```js
exercises[]
  exerciseId
  name
  categoryId
  defaultEquipmentIds[]
  coachCues[]
  progressionLevel
  videoId
```

## Video registry
```js
videos[]
  videoId
  exerciseId
  source // server, youtube, timer, missing
  url
  localPath
  createdAt
  updatedAt
```

## Admin implication
Admin should edit exercises/program structures, not raw rows. The current row-based DATA can be generated from the structured model until the renderer is fully migrated.
