{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://astrocollabapi.com/schemas/DepthMap.schema.json",
  "title": "DepthMap",
  "type": "object",
  "required": [
    "project",
    "name",
    "region",
    "columns",
    "rows",
    "cells",
    "seconds",
    "goals",
    "progress"
  ],
  "properties": {
    "project": {
      "$ref": "Id.schema.json"
    },
    "name": {
      "type": "string"
    },
    "region": {
      "$ref": "Region.schema.json"
    },
    "columns": {
      "type": "integer",
      "format": "int32"
    },
    "rows": {
      "type": "integer",
      "format": "int32"
    },
    "cells": {
      "type": "array",
      "items": {
        "$ref": "DepthCell.schema.json"
      }
    },
    "seconds": {
      "type": "object",
      "unevaluatedProperties": {
        "type": "array",
        "items": {
          "type": "number",
          "format": "double"
        }
      },
      "description": "Per filter, seconds on each cell, in the order of `cells`."
    },
    "goals": {
      "type": "object",
      "unevaluatedProperties": {
        "type": "number",
        "format": "double"
      },
      "description": "Hours wanted per filter at every point."
    },
    "progress": {
      "type": "object",
      "unevaluatedProperties": {
        "$ref": "FilterProgress.schema.json"
      }
    }
  },
  "description": "A project's depth map: the region cut into a fine north-up grid, with everybody's accepted\nseconds on each cell, per filter. Each accepted record credits the cells its footprint\ncovers, in proportion to how much of each it covers."
}
