{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/flashdata-dev/json-schema/flashdata-dev-register-request-schema.json",
  "title": "RegisterRequest",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/flashdata-dev-auth-api-openapi.yml#/components/schemas/RegisterRequest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "email",
    "password",
    "acceptedTerms",
    "termsVersion",
    "privacyVersion"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Optional display name. When omitted, defaults to the normalized email local part, truncated to 100 characters. Can be changed in the profile later."
    },
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 320
    },
    "password": {
      "$ref": "#/$defs/Password"
    },
    "acceptedTerms": {
      "type": "boolean",
      "const": true
    },
    "termsVersion": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Exact version rendered by the signup page; stale versions are rejected."
    },
    "privacyVersion": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Exact version rendered by the signup page; stale versions are rejected."
    }
  },
  "$defs": {
    "Password": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128,
      "writeOnly": true
    }
  }
}