Schema:
{
  "type": "object",
  "properties": {
    "type": {"type": "string", "pattern": "^form-field$"},
    "id": {"type": "string", "pattern": "^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$"},
    "machine_name": {"type": "string"},
    "data": {
      "type": "object",
      "properties": {
        "uid": {"type": "string","pattern": "^form-textarea$"},
        "title": {"type": "string"},
        "value": {"type": "string"}
      }
    }
  },
  "required": ["id", "type", "data"]
}
Example output:
Given "Plain text area" form element on a component set up like so
  
      
            
      
  
And used on Node layout canvas like so
  
      
            
      
  
JSON:API Output for this form field will be this:
{
  "type": "form-field",
  "id": "8ddf464b-2771-4bec-b2a0-2d4f8ab53863",
  "machine_name": "plain-text-area",
  "data": {
    "uid": "form-textarea",
    "title": "Plain text area",
    "value": "Plain text area value"
  }
}