{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "tools/push3-evolution/seeds/manifest.schema.json",
  "title": "Push3 seed pool manifest entry",
  "description": "Each line of manifest.jsonl must conform to this schema. The file is newline-delimited JSON (JSONL); validate one parsed object per non-empty line.",
  "type": "object",
  "required": ["file", "origin", "date"],
  "additionalProperties": false,
  "properties": {
    "file": {
      "type": "string",
      "description": "Filename of the Push3 seed relative to the seeds/ directory (e.g. optimizer_v3.push3)."
    },
    "fitness": {
      "type": ["integer", "null"],
      "description": "Raw fitness score returned by the evaluator (wei-scale integer). null when the seed has not yet been evaluated."
    },
    "fitness_flags": {
      "type": ["string", "null"],
      "description": "Comma-separated flags that qualify or invalidate the fitness value (e.g. token_value_inflation). null when no flags apply."
    },
    "origin": {
      "type": "string",
      "enum": ["hand-written", "evolved", "llm"],
      "description": "How this seed was produced: hand-written by a developer, evolved by the evolutionary loop, or generated by an LLM."
    },
    "run": {
      "type": ["string", "null"],
      "description": "Zero-padded run identifier from which this seed was admitted (e.g. '007'). null for hand-written and llm seeds."
    },
    "generation": {
      "type": ["integer", "null"],
      "description": "Generation index within the run at which this candidate was produced. null for hand-written and llm seeds."
    },
    "date": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
      "description": "ISO 8601 date (YYYY-MM-DD) on which this entry was added to the manifest."
    },
    "note": {
      "type": ["string", "null"],
      "description": "Human-readable description of the seed strategy or noteworthy behaviour. null when no annotation is needed."
    }
  }
}
